自定义UITableViewCell未显示全长

时间:2017-10-11 20:43:19

标签: objective-c xib

我是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方法。为什么我必须在另一个项目中实现。是必要的??请指导。

3 个答案:

答案 0 :(得分:1)

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

1)在storyboard / Interface构建器中将其定义为TableView的属性。选择TableView - >尺寸检验员 - >行高。

2)在viewDidLoad()中,您可以定义高度_tableView.rowHeight = 120;此选项会覆盖storyboard / Interface构建器中的值。

3)您可以像其他人建议的那样实施委托。

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

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

有多种方法可以根据内容获得动态单元格高度。如果你需要帮助我,请告诉我。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

必须以委托方法返回行的高度:

select distinct on (campaign_id) count(event), event, u.userid, u.campaign_id, 
             rank() over (partition by u.campaign_id order by count(event) desc) as THISHERE 
from events e join
     users u
     on u.userid = e.userid 
group by event, 3 , 4
order by campaign_id, count(event) desc
fetch first 20 rows only;