【问题标题】:Custom UITableViewCell not showing on full length自定义 UITableViewCell 未全长显示
【发布时间】:2017-10-11 20:43:19
【问题描述】:

我是 iOS 新手。我正在练习objective-c并制作了我的自定义UITableViewCell。它有一些高度而不是它的默认高度,即高度是 120。但是当我运行程序时,单元格显示在它们的默认高度上。我只写了一些代码如下,我正在使用 xib 来设计自定义单元格。如果需要,我可以分享屏幕截图。谢谢

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"CustomCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
        cell = [topLevelObjects objectAtIndex:0];
    }

    return cell;
}

编辑 在我的一个项目中,我没有实现 heightforrowatindexpath 方法。为什么我必须在另一个项目中实施。有必要吗??请指导。

【问题讨论】:

    标签: objective-c xib


    【解决方案1】:

    如果您的所有自定义单元格的高度相同但与默认高度不同,您可以通过三个选项来定义高度。

    1) 在 storyboard/Interface builder 中将其定义为 TableView 的属性。选择 TableView -> 大小检查器 -> 行高。

    2) 在你的 viewDidLoad() 中,你可以定义高度_tableView.rowHeight = 120; 这个选项会覆盖storyboard/Interface builder中的值。

    3) 您也可以按照其他人的建议实现委托。

    (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return 120;
    }
    

    最后一个选项让您可以灵活地为每行定义不同的高度,并覆盖以上两个选项的值。

    有一些方法可以根据内容获取动态单元格高度。如果您需要帮助,请告诉我。

    【讨论】:

      【解决方案2】:

      如果您想要不同的单元格高度,您需要在委托中提供它们:https://developer.apple.com/documentation/uikit/uitableviewdelegate/1614998-tableview?language=objc

      【讨论】:

        【解决方案3】:

        行高必须在委托方法中返回:

            - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
        
        return 120.0;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-10-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多