【发布时间】:2015-08-02 15:49:34
【问题描述】:
如果在某个地方已经回答了这个问题,请提前道歉。我到处看了,我仍然不确定该怎么做。 (而且使用 Objective C 的答案对我来说几乎完全没有价值。)我对 iOS 有点陌生。
我有一个 UITableView,它用作各种新闻源,显示一系列帖子。 (例如,推特新闻源。)此表视图中的单元(当前)派生自在 xcode 的界面构建器中创建的单个单元原型。每个单元格都包含子视图,用于显示用户名、个人资料图片缩略图、标题、消息、日期、位置、另一张图片等内容。
问题是,根据特定帖子包含的数据,其中许多子视图应该或不应该显示 - 如果帖子不包含图像,则不应显示该单元格的图像视图;如果帖子没有日期和/或位置,则不应显示其中一个或两个视图。未使用的字段不仅应为空,而且不应占用单元格中的任何空间。
我在Using Auto Layout in UITableView for dynamic cell layouts & variable row heights 中读到(在“2。确定唯一表视图单元格重用标识符”下。@smileyborg 的精彩回答,顺便说一句。)对于可能位于单元格中的每个不同的子视图布局,不同的原型单元格并且应该使用重用标识符。但这将要求我为帖子中每个可能的数据项组合都有一个单元原型,即使差异是单个标签!肯定有更好的方法。
什么是做我需要做的安全和正确的方法?有没有办法在运行时从单元格中删除子视图(并让布局相应地调整其间距)而不会完全搞砸单元格回收?
【问题讨论】:
-
通过代码构建单元 UI 是一种选择吗?我认为在这种情况下它可能真的对你有帮助。
-
@Plasher 我不明白为什么不这样做!不幸的是,我对它的工作原理知之甚少。我已经完成了一些程序化布局构建,但从未使用 tableview 单元格。那真的可以让我做我需要做的事吗?
-
是的,我相信您将能够构建高效的东西,而不必为每种情况创建不同的单元格。看看snapkit.io我已经用了一段时间了,真的很简单。
标签: ios iphone swift uitableview