在 ios7 中使用故事板,在故事板编辑器中的表格视图单元格下显式查看内容视图(与以前版本中从界面隐藏的版本相反) 。
问题是我无法将单元格的自定义元素连接到我的自定义单元格的ib出口(UITableCellView
的子类),并且只能将它们连接到表格中无法自定义的内容视图(UIView
)(即其自定义类属性为灰色)
这让我可以选择使用我觉得不方便且不太优雅的标签。
我还可以在xib中创建自定义视图,执行所有连接,然后手动将此自定义视图添加为表格的内容视图,但我正在寻找通过故事板编辑器进行操作的方法。
有没有办法在ios7的故事板编辑器中将UI元素连接到自定义单元格的内容视图?
答案 0 :(得分:16)
好的,我发现了一个Xcode错误。
如果您完成以下操作,则会复制该问题:
- 在故事板中创建新的UIViewController
- 将UITableView拖动到VC
- 更新UITableview以拥有1个(尽可能多的)动态原型单元
问题:添加了单元格,但没有内容查看。
解决方案: 而不是更新故事板中的单元格数量。 从Xcode的对象部分拖动一个自定义单元格,Cell将添加一个contentView。
答案 1 :(得分:5)
我能够通过以下方式做到这一点:
答案 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) - 这是实际上这是最简单的解决方案,但遗憾的是它仍然是一个评论。