我有一个类似于下面的表格视图。 每个问题都可以包含动态的答案,因此可以更改单元格高度。我需要尽可能避免编写手动编码(以编程方式创建按钮和标签并添加到Tableview contentView),并且更喜欢使用XIB,并从界面构建器执行所有操作。什么是最好的方式来做到这一点?带动态内容和动态行高的UITableViewCell
回答
对我听起来像最简单的解决办法是每个编号项分配部分和实现的选项行,每行集合。这样做并不需要行的动态高度,尽管根据您的内容和期望的外观可能需要这些高度。无论哪种方式,结果都是实现你所需要的一小部分工作。
你可以设计每个单元在IB像这样:
与表视图注册吧:
[self.tableView registerNib:[UINib nibWithNibName:@"YourSubclass" bundle:nil] forCellReuseIdentifier:@"cell"];
贯彻UITableViewDataSource
和UITableViewDelegate
方法,如@ GoodSp33d指出。这些方法需要告诉表格视图关于你的动态内容。单凭IB无法做到这一点。
完全正确,因为我看到它,但太短,以帮助OP,因为这是什么GoodSp33d详细,并没有任何飞行 – 2014-10-08 13:53:43
我已经添加了几个更多的细节来澄清 – dbart 2014-10-08 14:11:52
如果您想避免按钮和标签的程序化创建。你可以设计表查看:
-Section 1 header view - Question 1 Title
-- Row 1 - Option 1
-- Row 2 - Option 2
-- Row 3 - Option 3
-Section 2 header view - Question 2 Title
-- Row 1 - Option 1
-- Row 2 - Option 2
-- Row 3 - Option 3
...等等
您需要创建此结构的合适的模型也是如此。字典阵列可以完成这项工作。
NSArray *data = @[
@{@"Question_Title":@"Do you feel lucky punk ?",
@"Options":@[@"yes", @"no"]},
]
而且在TableView中的DataSource
-numberOfSectionsInTableView
return data.count
-numberOfRowsInSection
NSDictionary *options = data.section
NSArray *optionsArray = options[@"Options"];
return optionsArray.count;
没有答案是完全动态的。所以IB设计它是不可行的。 – 2014-10-08 13:42:22
+ ::这不会在IB提出静态布局......为什么这么认为? – 2014-10-08 13:50:42
- 1. 带动态内容的动态页面
- 2. 自定义和动态内容UITableViewCell
- 3. 动态UITableViewCell高度
- 4. 带动态内容的JQuery
- 5. 带动态内容的RowExpander
- 6. UITableViewCell和heightForRowAtIndexPath的iOS动态高度
- 7. 设置动态UITableViewCell高度
- 8. UITableViewCell UIButton动态高度
- 9. 具有静态高度和动态内容的jQuery寻呼机
- 10. 静态内容中的动态内容
- 11. 动态内容
- 12. 带Dojo的动态表单内容(Zend_Dojo)
- 13. 带动态内容的Jquery Thickbox
- 14. 带动态内容的jquery手风琴
- 15. 带动态内容的旋转木马
- 16. 带动态内容的打开窗口
- 17. 带动态内容的Silverlight Accordion控件
- 18. 带动态内容/组件的网页
- 19. 带有动态内容的android布局?
- 20. 带动态内容的jQuery对话框
- 21. html内容的动态高度
- 22. 不正确的UITableViewCell高度与动态UILabels和内容压缩/电阻
- 23. 动态行高
- 24. Knockoutjs:动态内容和applyBindings
- 25. qTip和动态内容
- 26. 根据内容高度的tableview动态高度行
- 27. Collectionviewcell自动布局高度,动态高度,内容高度
- 28. 带有AutoLayout的UITableViewCell中的动态图像高度
- 29. UITableViewCell的动态身高问题
- 30. UITableViewCell中动态高度的子视图
IB是最适合于静态内容。正如你所指出的,每个问题都有一个动态的答案。如果您使用表格单元格来表示答案,则不需要每个单元格的动态高度(基于上图)。您仍然可以使用IB来设计一个'UITableViewCell'子类和将容纳该表的视图控制器,但是无法避免为'UITableViewDataSource'和'UITableViewDelegate'协议编写代码。 – dbart 2014-10-08 14:01:50