3

我有一个分组的 UITableView,它真的被设计成在 iPhone 的纵向模式下看起来不错。它的单元格子视图设置了自动调整大小,以便它们在横向模式下伸展,但这使得它在美学上不太令人愉悦——单元格对于它们的内容来说看起来太宽了。

我现在把它做成一个通用应用程序,但在 iPad 上,自动调整大小会导致更大的拉伸,而且看起来无法接受。

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

由于在 UITableView 中没有找到对此的支持,我做了一些快速尝试,将其子类化以在布局时限制其大小,并且作为替代方案,引入容器视图以使 UITableView 仅垂直自动调整大小。这两种方法都有效,但产生了新问题:在边缘滑动时滚动不起作用,我现在被迫使 UITableView 的背景透明(这违背了 Apple 的建议),因为现在 UITableView 的框架和之间的背景不连续边距。

有没有人找到解决我的问题的技巧(即限制 UITableView 中组的宽度,导致边距扩大以填充视图的宽度),或者它的开源解决方案?

4

2 回答 2

5

好消息!我终于找到了一种方法,只需进行微小的代码更改即可令人满意地实现这一目标:

于 2012-07-19T15:49:14.247 回答
0

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

Cocoa With Love 有一篇关于如何做到这一点的精彩文章:Easy custom UITableView drawing

这篇文章的基本要点是你需要制作六个不同版本的背景,并在tableView:cellForRowAtIndexPath:要求一个单元格时提供正确的一个。您将需要一个顶部有圆角(用于截面的第一行),一个底部有圆角(用于截面的底行),以及一个所有四个角都是圆形的(当只有一节中的一行)。然后您将需要相同的三个,但为每行的“选定”版本定制。

于 2012-07-09T20:57:45.120 回答