請允許我簡單說明表格如何在iOS中工作。每個表格都有兩個主要組件:要顯示的數據和表格的視圖(顯示)。數據是表格信息的來源。任何類型的數據源都可以用作表格的數據源(像NSString
,數組,可變數組,字典等靜態信息)。數據源的確切類型取決於應用程序本身。
這些數據必須被觀看到用戶,這是UITableView
的作用。負責將數據加載到視圖的代碼始終在函數tableView:cellForRowAtIndexPath:
內。在此功能中做裝載,你也可以指定樣細胞,表風格的類型做了一些視圖屬性...
現在裝載正好在取數據源的相同的順序(除非你指定的其他方式)。因此,如果您的數據位於數組中,則數組的第一個元素將位於表格的第一個單元格中,依此類推。
現在回答你的問題的第一部分,應您的數據源是什麼類型的?由於您要定期將數據添加到數據中,因此您肯定需要可變的類型。這可能是NSMutableArray
或NSMutableDictionary
。當你的信息來源只有一個項目時使用數組,例如你只是添加球員的名字,並且當你的信息每個單元格有多個項目時使用字典,比如球員姓名,球員年齡,球員得分(並且說你是願意在單元格中顯示所有這些信息;還要記住,您可以自定義單元格視圖並執行自定義單元格)。那麼,爲什麼可變類型?因爲他們允許向他們添加刪除項目。如何添加和他們坐在哪裏?通常可變類型有addObject
用於添加,新項目總是添加到數組的末尾。
我希望這個解釋能幫助你理解事情是如何工作的,所以你可以想象你需要做什麼解決方案來解決你的問題。
對於表的通知數據源的變化,你總是需要調用:
[myTableView reloadData];
刷新數據將迫使功能tableView:cellForRowAtIndexPath:
再次調用並重新加載所有的數據源中的數據,並且確實按照它們在該數據源中的順序。
那麼這裏的數組是一個NSMutableArray?你確定表中記錄的順序不會改變嗎? – shajem 2012-02-01 16:07:51
數組必須是NSMutableArray,因爲您無法將對象添加到NSArray。我很確定這些記錄不會改變訂單,但也許,當您正在處理這些記錄時,您可以快速嘗試。 – singingAtom 2012-02-01 16:13:35