RT,UITableview delegate中貌似只可以设置row的高度,有没有方法让我设置ow与row之间的距离?
PHP中文网2017-04-17 11:36:26
你不能改变cell得高度 只能再插入一个空白cell
- (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 => 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; }
大家讲道理2017-04-17 11:36:26
你可以自定义一个View,将这个View的高度设的高一点,然后把这个View作为cell的backgroundView。这样就能实现你说的那个效果了。