背景
我正在尝试创建一个包含大约4种不同单元格布局的表格视图。
首先,我考虑使用静态表视图来解决问题,因为行数有些固定(不超过10)
但是,经过一番思考后,我认为我并不想与UITableViewController
绑在一起。因此,我尝试使用动态表视图来实现它。
问题:
在创建4个原型单元格之后,我发现我需要访问单元格中的子视图(以更新它们的值)。但我知道的唯一可能方式似乎是:
1. Create a subclass for each prototype cell, and create `IBOutlet` to the child views
2. Assign `tag` for each child view for later access
但我并不喜欢这两种方法......
第一个问题太麻烦了,第二个解决方案中的标签似乎非常特殊(通过一些幻数来访问子视图......)
所以,我想知道:
有没有更好的实践来实现这种方法 实现代码如下。 (多个单元原型和固定行号)
静态表视图是更好的方法吗?如果是的话,会有
当我被绑定到UITableViewController
时有任何限制吗?
例如,如果我需要更复杂的用户界面,并决定向其添加更多观看次数,则UITableViewController
的灵活性会低于UIViewController
非常感谢你!
答案 0 :(得分:0)
1.如果要访问他的IBOutlets,您需要继承UITableViewCell。 为了区分单元格,只需使用isKindOfClass
2.这取决于你的细胞彼此之间的差异。如果它们的结构略有不同,您可能需要考虑将元素放在cellForRow中。尝试看一下内置结构,因为它可能会为你节省一些子类。 这些结构具有内置参数,例如:图像,文本等。 他们的结构更严格,但
论文是可用的类型:
UITableViewCellStyleDefault, // Simple cell with text label and optional image view (behavior of UITableViewCell in iPhoneOS 2.x)
UITableViewCellStyleValue1, // Left aligned label on left and right aligned label on right with blue text (Used in Settings)
UITableViewCellStyleValue2, // Right aligned label on left with blue text and left aligned label on right (Used in Phone/Contacts)
UITableViewCellStyleSubtitle // Left aligned label on top and left aligned label on bottom with gray text (Used in iPod).
我真的不明白为什么要使用标签?
答案 1 :(得分:0)
如果单元格非常相似但布局不同,它们可以共享一个共同的UITableViewCell
子类,前提是该类不需要知道布局,只需配置可用的插座。
如果代码确实需要知道所使用的布局,那么最好将它们作为单独的子类。
对于Swift使用is
或as?
来确认单元格的正确子类(对于Objective C,它将是isKindOfClass
方法。)