UITableView ContentInsets水平滚动内容

Ame*_*has 8 objective-c uitableview ios

我想要一些10像素的剩余空间UITablViewcCell。我在下面编写代码,但其水平滚动内容。我不想要那个。

self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0.0, 0.0, 130.0, 768.0)];
    self.horizontalTableView.contentInset = UIEdgeInsetsMake(0.0, 10.0, 0.0, 0.0);
Run Code Online (Sandbox Code Playgroud)

我需要使用contentOffset contentSizetableview的属性吗?

Jes*_*ese 5

我认为最好的解决方案是创建子类UITableViewCell并在layoutSubviews方法中设置其子窗口的框架以适合您的间距要求。这将更加干净和可扩展。仔细查看tableview单元格是一个不错的选择。

但是与此同时,也存在一些捷径,每种捷径都有其自身的缺点:

  1. 设置单元格的缩进

    -(NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath

    此方法将在您的单元格内容中添加缩进(左边距)。但是单元格分隔符将占用单元格的实际宽度,即表格宽度。因此,您需要将分隔符样式设置为none,这样就不会显示它。但不适用于需要单元格分隔符的情况。

  2. 减少整个tableViews框架的大小

    这是最简单的方法,而且很明显,但是当您需要在单元格和tableView之间留有边距时,它是la脚的。

设置contentInset后,您应该已经在Docs中注意到了有关它的讨论。

使用此属性可将内容添加到内容周围的滚动区域。大小单位是磅。默认值为UIEdgeInsetsZero。

我认为使用contentOffset和contentSize可以帮助实现边距,但是对我来说,更改值从未产生任何效果。可能就像安德烈所说的那样,它们可能在内部进行管理。但是,我很想听听更多关于这些特性及其反映的行为的信息。

编辑

contentOffset和contentSize继承自UIScrollView,在UITableView中的含义相同,因为它是UIScrollView的子类。


Ed *_*hin 0

你的描述对我来说不太清楚,所以我可能完全离开这里。但我会猜测一下,如果不正确的话,也请你尝试澄清更多。

您设置了 tableView 的 contentInset,我猜它可以在左侧设置边距。但我认为这导致 tableView 滚动,因为您没有减少内部视图的宽度。