ios 7自定义UITableViewCell的内容视图

时间:2013-10-05 10:45:05

标签: uitableview storyboard ios7 xcode5

ios7 中使用故事板,在故事板编辑器中的表格视图单元格下显式查看内容视图(与以前版本中从界面隐藏的版本相反) 。

问题是我无法将单元格的自定义元素连接到我的自定义单元格的ib出口(UITableCellView的子类),并且只能将它们连接到表格中无法自定义的内容视图(UIView)(即其自定义类属性为灰色)

这让我可以选择使用我觉得不方便且不太优雅的标签。

我还可以在xib中创建自定义视图,执行所有连接,然后手动将此自定义视图添加为表格的内容视图,但我正在寻找通过故事板编辑器进行操作的方法。

有没有办法在ios7的故事板编辑器中将UI元素连接到自定义单元格的内容视图?

5 个答案:

答案 0 :(得分:16)

好的,我发现了一个Xcode错误。

如果您完成以下操作,则会复制该问题:
- 在故事板中创建新的UIViewController
- 将UITableView拖动到VC
- 更新UITableview以拥有1个(尽可能多的)动态原型单元
问题:添加了单元格,但没有内容查看。

解决方案: 而不是更新故事板中的单元格数量。 从Xcode的对象部分拖动一个自定义单元格,Cell将添加一个contentView。

答案 1 :(得分:5)

我能够通过以下方式做到这一点:

  1. 选择文档大纲中的单元格
  2. 在Identity Inspector中更改其自定义类
  3. 将您想要的任何元素放入内容视图
  4. 使用Connections Inspector
  5. 将IBOutlets连接到内容视图中的元素

答案 2 :(得分:1)

我真的不知道答案,但我可以建议解决这个问题:

1)将现有单元格从其他tableview复制到您正在处理的单元格。

2)现在,您的单元格下将包含contentView。通过添加视图来设计此单元格。

3)为您的单元格创建一个类,例如NewCell,然后在此类中手动创建IBOutlet:

@property (nonatomic, strong) IBOutlet UILabel* mainLabel;

4)将storyboard中的单元格类分配给刚刚创建的类。完成此步骤后,您可以将故事板中的插座拖到课堂上。

我不确定这是否是XCode 5的错误或是故意的,我也在寻找更好的解决方案。

答案 3 :(得分:0)

使用xib接口创建新的uiviewcontroller并添加所需的子视图。另外,建立iboutlet连接。

现在,将viewcontroller:UIViewcontroller重命名为viewcontroller:新创建的视图控制器的.h文件中的UITableviewcell。

您的tableviewcell已创建并可随时用于任何类的任何UITableview。

希望它有所帮助。

答案 4 :(得分:0)

我可能会复制其他人的答案,但我发现这种解决方法有助于绕过这个愚蠢的XCode错误。简短解决方案:在Storyboard中构建自定义单元格时,请勿在单元格或内容视图中拖动UI元素。

相反,将它们拖到OUTSIDE以便它们是父表视图的子元素!

如果您使用左侧的小层级菜单来确保您的元素在正确的位置结束,则最简单的方法是拖放。

拖动元素后,只需按住Control键并从自定义单元格拖动到UI元素即可建立连接。呜呜!

设置好连接后,(最后)将UI元素拖回到自定义单元格的内容视图中,然后像往常一样将它们展开。

更新:虽然我的方法有效,但请在下面的答案中查找thomasdao的评论,他只是将连接直接拖到.h文件中(左边距中的小圆圈,你宣布你的IBOutlets) - 这是实际上这是最简单的解决方案,但遗憾的是它仍然是一个评论。