如何在Interface Builder中将UITableViewCell的内容视图转换为普通的UIView?

Sen*_*ful 3 interface-builder uitableview uiview ios xcode6

我在Interface Builder中设计了一个复杂的UITableViewCell,它具有许多子视图和约束。问题在于它们很多都是内容视图的直接子代。现在,我想在内容视图和所有子视图之间插入一个UIView。

或者,考虑这种情况的另一种方式是想象我想将所有单元格的内容包括在没有表视图的普通UIViewController中。

无需手动重新创建所有约束的最简单方法是什么?

Vla*_*nic 6

我不确定是否有人写过这个解决方案,但该解决方案有点hacky。如果要将UITableViewCellcontentView 转换为基本视图,则必须按照以下步骤操作:

  1. 打开故事板作为源代码作为 XML 文件。您可以使用一些 XML 编辑器来帮助您编辑此文件
  2. <tableViewCell>在 Storyboard XML 文件中查找元素数组
  3. 在标签内<tableViewCell>查找<tableViewCellContentView>元素。将其内容复制到 XML 文件中的某个位置(最好的想法是<subviews>element 以避免在编辑 XML 文件期间出现一些错误)
  4. 转换<tableViewCellContentView key="contentView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"<view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO"。我相信这一步生成的XML可能存在一些差异,但原理是显而易见的。只需创建一个空视图来检查空视图的有效 XML 设置。
  5. 转换</tableViewCellContentView></view>

完成这些步骤后,您将准备好在故事板内编辑视图,并且如果需要,您可以从表中删除原始单元格。


And*_*rea 5

非常简单,您只需选择所有视图,然后在上方菜单中选择EDITOR-> EMBED IN-> VIEW
唯一的问题是它将添加20pts的填充。检查此答案以获取更多详细信息

  • 至于现在有更好的解决方案编辑器-&gt;嵌入-&gt;无插图的视图 (2认同)