在 iOS 6 中,分组 TableView 的底部似乎有额外的填充(iOS 5 没有),但我找不到任何表明这是正确/预期行为的文档。
这也会影响示例项目,例如 TableViewSuite
示例中的 SimpleTableView
项目。我想我必须将 AppDelegate
中的样式更改为“分组”,并将 SDK 更新到 iOS 6,但没有对项目进行其他更改。
调查显示,为页眉和页脚 View 保留了 10px
,还有一些无法计算的 20px
。
没有实际的页眉或页脚 View (tableHeaderView
和 tableFooterView
是 nil
,并且实现并返回 nil
例如viewForFooterInSection
什么都不做)。
我在 tableView 本身上找不到任何 '20' 值,尽管我当然可能错过了一些东西。
为页脚添加一个零大小的 View 没有任何作用,但是添加一个 1px
方形 View 会导致额外的填充消失。例如:
tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0,0,1,1)];
它仍然占用 1px
的高度,所以底部填充现在是 11px
,但这远不如 20 明显。现在设置 sectionFooterHeight
为 0 将导致只有 1px
的底部空间。
我的问题是:什么?我怎样才能完全删除它?这不是任何关键任务,但它非常奇怪,不可取,而且据我所知,它是无证的。
请注意 - 它从苹果开发论坛复制过去的问题。但我也有同样的问题,我也不明白如何解决。
最佳答案
@frankWhite' 的解决方案效果很好,但这里有一个更好的解决方案,可以避免输入 0.1、0.001 或其他以减少歧义。
// Swift version
func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
// remove bottom extra 20px space.
return CGFloat.min
}
// Objective-C version
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
// remove bottom extra 20px space.
return CGFLOAT_MIN;
}
https://stackoverflow.com/questions/14210474/
相关文章:
objective-c - 尝试标记应用程序图标,但未获得用户标记应用程序的权限 : iOS 8 X
ios - 如何从 CGPoint 和 CGSize 创建 CGRect?
objective-c - iOS:如何将 UIViewAnimationCurve 转换为 UIV
objective-c - [NSNull null] 和 nil 有什么区别?
ios - 使用自动布局,如何根据图像使 UIImageView 的大小动态变化?
objective-c - Interface Builder 中的 IBOutletCollect
ios - 字符串的静态 NSArray - 如何/在哪里初始化 View Controller