自定义 UITableViewCell 未全长显示
Posted
技术标签:
【中文标题】自定义 UITableViewCell 未全长显示【英文标题】:Custom UITableViewCell not showing on full length 【发布时间】: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 方法。为什么我必须在另一个项目中实施。有必要吗??请指导。
【问题讨论】:
【参考方案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;
【讨论】:
以上是关于自定义 UITableViewCell 未全长显示的主要内容,如果未能解决你的问题,请参考以下文章
iOS 帮助:UITableViewCell 类的自定义设计未显示在 UITableView 中
为自定义 UITableViewCell 加载和注册 nib 时未调用 prepareForSegue
从 .xib 创建的自定义 UITableViewCell 不显示