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

问题描述 投票:2回答:2

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

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

在不必手动重新创建所有约束的情况下,最简单的方法是什么?

ios uitableview uiview interface-builder xcode6
2个回答
4
投票

非常简单,您只需选择所有视图,然后在上方菜单中选择EDITOR-> EMBED IN-> VIEW 唯一的问题是它会添加一种20pts的填充。查看此answer了解更多详情


1
投票

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

  1. 打开故事板作为源代码作为XML文件。在编辑此文件时,您可以使用某些XML编辑器来帮助您
  2. 在storyboard XML文件中查找<tableViewCell>元素的数组
  3. <tableViewCell>标签内找到<tableViewCellContentView>元素。将其内容复制到XML文件中的某个位置(最好的想法是<subviews>元素,以避免在编辑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>

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

© www.soinside.com 2019 - 2024. All rights reserved.