2010-08-13 20 views
1

以下情況適用於我爲我公司工作的iPad應用程序。objective-c以編程方式將表視圖從標準更改爲分組?

所以我有一個持有人名單的信息類型「人」的數組。在最初的頁面上,我有一張顯示他們名字和圖片的表格。當這個加載時,結果被取消分組。我想知道是否有一種方法可以輕鬆地將這些結果與基於位置或業務標題等按鈕的點擊進行分組。他們在加載時沒有分組的原因是因爲功率高於我認爲有必要先顯示原始列表。任何想做這樣的事情的想法?提前致謝!

回答

1

你需要使用「節」來拆表。

首先,你需要你的數據源分類到所需的組,然後在視圖中反映它。

字典可以很容易地表示分組數據。將每個組建模爲包含該組條目的數組,然後使用代表該部分的鍵將其添加到字典中。

當數據被拆散,你仍然可以使用字典,而是用一個單一的入口,而不是很多,然後反映在UI中。

這樣,當你問有多少部分有在表中,您可以返回[dictionary count];,然後當你問的行數,你可以這樣做[[dictionary [email protected]"myKey"] count];

等。

當你重新配置你的數據源,你可以調用[self.tableView reloadData];重新加載表的部分。

+0

這是一個非常好的主意。我會試一試並回復你。謝謝! – gabaum10 2010-08-13 17:08:09

+0

好吧,我有數據所有分開的需要,現在我只需要重新配置表。你如何去改變表格的節數?或者幾乎所有的表格屬性。在頁面加載時,我發現了很多方法可以做到這一點,但在運行時卻沒有做到這一點。有什麼想法嗎? – gabaum10 2010-08-16 14:01:44

+0

在表視圖中調用'reloadData'將指示它再次查詢'dataSource'和'delegate'以獲取更新的信息。您需要管理控制器中的狀態,並有條件地更改您在'numberOfSections ...'和'numberOfRows ...'等中返回的數字。 – Jasarien 2010-08-16 14:12:01

1

你必須刪除的UITableView並在它的地方通過[[UITableViewController alloc] initWithStyle:UITableViewStyleGrouped];添加另一個。您無法在運行時更改現有樣式。

另一種做法是將它從起點分組,如果它是「未分組」,則返回1爲- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;,並在分組時按- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section返回所有行,按正常方式進行分組。

+0

一旦用戶點擊組按鈕,您將如何再次調用這些方法? – gabaum10 2010-08-13 15:29:43

+0

[myTable reloadData]; – 2010-08-13 16:53:29

相關問題