分组了UITableView和水平页边距

我有一个分组的UITableView,它的devise非常适合iPhone的肖像模式。 它的单元子视图已经设置了自动设置,以便在横向模式下拉伸,但是这使得它在美学上不太令人满意 – 单元格对于其内容看起来太宽。

我现在把它变成一个通用的应用程序,但在iPad上,自动调整会导致更多的延伸,看起来是不可接受的。

如果我能让UITableView的单元组具有固定的宽度(或最大宽度),或者我可以以某种方式控制水平边距,那将是理想的。

在UITableView中没有find对此的支持,我已经做了一些快速的尝试,以便在布局的时候限制它的大小,或者在引入一个容器视图来使UITableView垂直自动resize。 这两种方法都有效,但是会产生新的问题:在页边空白处滑动时,滚动不起作用,现在我不得不将UITableView的背景透明化(这违背了Apple的build议),因为现在UITableView的框架和利润率。

有没有人发现一个技巧来解决我的问题(即约束UITableView中的组的宽度,导致页边距扩大,以填补视图的宽度),或者一个开源的解决scheme呢?

好消息! 我终于find了一个方法来实现这个令人满意的只有很小的代码更改:

  • 根据本文的解决scheme,通过-setFrame UITableViewCell并覆盖-setFrame缩小单元格:
    如何以分组样式设置UITableView中单元格的宽度
  • 而要添加垂直填充,使用UITableView(从UIScrollViewinheritance)的contentInset属性工作得很好。

您可以始终保持标准的表格视图,并为表格视图单元格提供透明边的自定义背景,使它们看起来比它们小。

可爱与爱有一个伟大的文章,在这里如何做到这一点: 简单的自定义UITableView绘图 。

文章的基本要点是你需要制作6个不同版本的背景,并在tableView:cellForRowAtIndexPath:请求单元格时提供正确的背景。 你将需要一个顶部圆angular(对于一个部分的第一行),一个在底部(对于一个部分的底部行)具有圆angular的一个,以及四个圆angular的四个圆angular之一一节中的一行)。 那么你将需要相同的三个,但为每个行的“选定”版本定制。

Interesting Posts