我有一个高度为 400px 的 UITableView,我想根据要显示的数据填充 10 个或 11 个自定义 UITableViewCells。问题是,根据我使用当前方法设置每行高度的方式,单元格之间或底部单元格下方存在间隙。我认为这是由于四舍五入。
此代码在某些单元格的末尾放置了分散的 1px 间隙:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (isWednesdaySchedule) {
return (tableView.frame.size.height/11);
}
else {
return (tableView.frame.size.height/10);
}
}
这段代码将返回值转换为 NSIntegers,使所有单元格组合在一起,但在底部单元格下方留下几个像素的间隙:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (isWednesdaySchedule) {
return (NSInteger)(tableView.frame.size.height/11);
}
else {
return (NSInteger)(tableView.frame.size.height/10);
}
}
如何解决此问题,以便我的所有单元格显示时在最后一个单元格之间或下方没有间隙?
最佳答案
好吧,只有当表格的边界恰好可以被 10 或 11 整除时,您才会看到一个无间隙表格。表格的设计假设行将滚动出屏幕,因此它们会尝试填满屏幕。
我认为你有两个选择:
(1) 设置行高,使底行离屏幕一半。用户将向上滚动以查看最后一行,行之间不会存在明显的间隙。最后会有死空间,但用户期望在表格中。
(2) 使用节页眉和页脚 View 直观地填充单个节的顶部和底部的空间,以根据需要定位它。我很确定您可以根据需要使用任意高度的空透明 View 来使该部分居中。
关于iphone - 使用动态行高时的 UITableView 间隙,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2006348/