你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS7技巧 >> iOStableView的遍歷所有tableviewcell以及tableview復用機制的一些用法

iOStableView的遍歷所有tableviewcell以及tableview復用機制的一些用法

編輯:IOS7技巧
iOStableView的遍歷所有tableviewcell以及tableview復用機制的一些用法,希望這篇文章能夠對各位同學帶來有效的幫助哦.

大家在做程序的時候,可能會遇上一種情況,需要遍歷tableview中所有cell,並分別給cell中的控件賦值,或者修改他的屬性。例如,在做網購程序的購物車中,都會有全選這個按鈕,單擊全選就會將所有cell中的小得勾選按鈕設置成被選中的狀態,從而該變他的狀態和圖片。

但是問題也沒那麼簡單,XCODE並允許開發者直接獲取所有的tableViewCell,這時候我們用遍歷的方法來獲取cell也只能獲得visbleCells這個屬性,也是就當前頁面所顯示的cell,我們先看看代碼:


- (IBAction)btnAction:(UIButton*)sender {
    //獲取可見cells
    visibleCells = visibleTableView.visibleCells;
 
        for (UITableViewCell *cell in visibleCells) {
              
            //cell中需要處理函數或屬性
                   
        }
 
}

這樣的話只能獲取當前頁面顯示的cell,但是這樣一來一旦拉動tableview其他沒有顯示的cell根本不會處於選中狀態,這種方法只適合小范圍的修改和變動。當然我們可以通過
//只返回當前不可見的cell

– (UITableViewCell *)dequeueReusableCellWithIdentifier:(NSString *)identifier

這個方法來獲取不顯示的cell,我個人是不推薦的,考慮到talbleview的復用機制,我們即使是賦值了一次,當我們再次拖動tableview的時候,來回來一看,剛設置的屬性全都回到解放前了,那怎麼辦了。
辦法當然是有的,那就是定義一個可變的數組NSMutableArray,將其中需要用到的屬性用bool 或者0,1的方式存儲起來,並且在tableviewcell初始化方法中,用判斷的方式,來加載所需要變動的屬性,這樣tableview不論他如何的復用,我的數組始終不會被銷毀,一直控制著變量。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved