我有一個類似於下面的表格視圖。 每個問題都可以包含動態的答案,因此可以更改單元格高度。我需要儘可能避免編寫手動編碼(以編程方式創建按鈕和標籤並添加到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