2016-06-11 2 views
0

в ячейке таблицы ui, утверждение if (cell == nil) не вызывается.I uitableview (cell = nil) всегда не звонит?

Потому что, когда я инициализирую ячейку вне оператора if, у тальбе будет неправильная метка в неправильной строке.

как я могу инициализировать свою ячейку?

@ «tttestttt» NS LOG - это не время создания таблицы.

- (UITableViewCell *) Tableview: (UITableView *) Tableview cellForRowAtIndexPath: (NSIndexPath *) indexPath {

static NSString *MyIdentifier = @"GroupsCell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 
if (cell == nil) { 
    NSLog(@"tttesttttt"); 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier]; 
} 

}

ответ

1

Используйте более удобный метод dequeueReusableCellWithIdentifier:forIndexPath:, который возвращает всегда действительную ячейку.

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {  
    static NSString *MyIdentifier = @"GroupsCell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier 
                 forIndexPath:indexPath]; 

    ... 

    return cell; 
} 
0

сделать Identifier не фиксированное значение

сделать его как index.row (преобразовать в строку, как личность)

ваши неправильно может быть обрешетка клетки отказывает