我有一个类似于下面的表格视图。 每个问题都可以包含动态的答案,因此可以更改单元格高度。我需要尽可能避免编写手动编码(以编程方式创建按钮和标签并添加到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. 动态UITableViewCell高度内的动态UITextView?
- 2. 带动态内容的动态页面
- 3. 自定义和动态内容UITableViewCell
- 4. 动态UITableViewCell高度
- 5. 带动态内容的JQuery
- 6. 带动态内容的RowExpander
- 7. iOS的UITableViewCell与动态内容的scrollView
- 8. 带有动态内容的jquery模态
- 9. UITableViewCell的动态高度
- 10. 带动态内容的动态div动画包装 - 没有固定的高度
- 11. iframe身高,动态内容
- 12. 动态内容高度
- 13. UITableViewCell和heightForRowAtIndexPath的iOS动态高度
- 14. NSLayoutConstraint和动态的UITableViewCell高度
- 15. 设置动态UITableViewCell高度
- 16. Autolayout动态UITableViewcell高度
- 17. UITableViewCell UIButton动态高度
- 18. UITableViewCell动态高度问题
- 19. 具有静态高度和动态内容的jQuery寻呼机
- 20. 动态内容
- 21. 动态内容
- 22. 带动态内容/组件的网页
- 23. 带有动态内容的android布局?
- 24. 带Dojo的动态表单内容(Zend_Dojo)
- 25. 带动态内容的Silverlight Accordion控件
- 26. 带动态内容的旋转木马
- 27. 带动态内容的Bootstrap分页?
- 28. 带动态内容的Jquery Thickbox
- 29. 带动态内容的q提示
- 30. 带动态内容的jquery手风琴
IB是最适合于静态内容。正如你所指出的,每个问题都有一个动态的答案。如果您使用表格单元格来表示答案,则不需要每个单元格的动态高度(基于上图)。您仍然可以使用IB来设计一个'UITableViewCell'子类和将容纳该表的视图控制器,但是无法避免为'UITableViewDataSource'和'UITableViewDelegate'协议编写代码。 – dbart 2014-10-08 14:01:50