Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>If you can't change the cell's height, the solution is to use invisible intermediate cells of the required height. You'll need to recalculate indexes at table view delegate and datasource in that case.</p> <pre><code>- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CELL_ID2 = @"SOME_STUPID_ID2"; // even rows will be invisible if (indexPath.row % 2 == 1) { UITableViewCell * cell2 = [tableView dequeueReusableCellWithIdentifier:CELL_ID2]; if (cell2 == nil) { cell2 = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CELL_ID2]; [cell2.contentView setAlpha:0]; [cell2 setUserInteractionEnabled:NO]; // prevent selection and other stuff } return cell2; } [ccTableView setBackgroundColor:[UIColor clearColor]]; cardsCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cardsCell"]; if(cell == nil){ NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"cardsCell" owner:self options:nil]; cell = [topLevelObjects objectAtIndex:0]; } // Use indexPath.row/2 instead of indexPath.row for the visible section to get the correct datasource index (number of rows is increased to add the invisible rows) NSString *nmCard = [[self.cards valueForKeyPath:@"cards.name"] objectAtIndex:(indexPath.row/2)]; cell.descCardLabel.text = nmCard; return cell; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ // two times minus one (invisible at even rows =&gt; visibleCount == invisibleCount+1) return [[self.cards valueForKeyPath:@"cards"] count] * 2 - 1; } - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.row % 2 == 1) return 40; return 162; } </code></pre> <p>You will also need to recalculate the indexPath.row for <code>:didSelectRowAtIndexPath:</code> and other methods where it is used.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload