tableview dequeueReusableCellWithIdentifier

今天在學習IAP的時候無心間看到原來 tableView: cellForRowAtIndexPath:方法中有兩個得到重用cell的方法,一直以來都是用UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];那下面的這個怎麼用呢,感受比較怪,假設沒有重用的豈不是爲空了UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]具體有什麼區別呢,而且當我用 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]的時候,爲何總報錯
reason: 'unable to dequeue a cell with identifier Cell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard',通過查閱,知道原來此方法爲6.0新加的,在SDK5.0是運行不起來的。 若是須要使用這個方法,你必須使用配套的方法來一塊兒用,下面兩個配套方法選其一:
- (void)registerNib:(UINib *)nib forCellReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(5_0); 
- (void)registerClass:(Class)cellClass forCellReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(6_0);ide

3 好比你已經用NIB作了一個Cell,或者自定義了一個Cell。咱們在你建立UITableView的時候,就能夠順帶
self.tableView.backgroundColor = xxxx; 
[self.tableView registerClass:[CustomCell class] forCellReuseIdentifier:@"CustomCell"];學習

這樣你在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath這個方法裏,你就能夠省下這些代碼:
    static NSString *CellIdentifier = @"Cell"; 
 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];prototype

     if (cell == nil) {         
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
                reuseIdentifier:CellIdentifier];       
    //設置你的cell 
    }it

而只須要
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
//設置你的cell 
    總體來講6.0倒是比5.0更省勁table

相關文章
相關標籤/搜索