objective-c - 分组的 UITableView 在底部有 20px 的额外填充

在 iOS 6 中,分组 TableView 的底部似乎有额外的填充(iOS 5 没有),但我找不到任何表明这是正确/预期行为的文档。

这也会影响示例项目,例如 TableViewSuite 示例中的 SimpleTableView 项目。我想我必须将 AppDelegate 中的样式更改为“分组”,并将 SDK 更新到 iOS 6,但没有对项目进行其他更改。

调查显示,为页眉和页脚 View 保留了 10px,还有一些无法计算的 20px。 没有实际的页眉或页脚 View (tableHeaderViewtableFooterViewnil,并且实现并返回 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 - 使用 Storyboard 的条件转场

ios - 使用自动布局,如何根据图像使 UIImageView 的大小动态变化?

objective-c - Interface Builder 中的 IBOutletCollect

ios - 字符串的静态 NSArray - 如何/在哪里初始化 View Controller

ios - MKMapView MKPointAnnotation 点击​​事件

objective-c - 有没有一种简单的方法可以将 ISO8601 时间戳转换为格式化的 NSD