찾다

 >  Q&A  >  본문

ios - UITableview的一个section下的各行Row之间可以设置间隔一段距离吗?

RT,UITableview delegate中貌似只可以设置row的高度,有没有方法让我设置ow与row之间的距离?

PHP中文网PHP中文网2772일 전1313

모든 응답(4)나는 대답할 것이다

  • PHPz

    PHPz2017-04-17 11:36:26

    你给每个Cell留空一段不就行了?

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 11:36:26

    要不就多设置一倍的number of rows,然后隔行插入一个空白cell

    회신하다
    0
  • PHP中文网

    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;
    }

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-17 11:36:26

    你可以自定义一个View,将这个View的高度设的高一点,然后把这个View作为cell的backgroundView。这样就能实现你说的那个效果了。

    회신하다
    0
  • 취소회신하다