UITableView перезагрузить проблемы с данными - PullRequest
0 голосов
/ 11 ноября 2011

У меня было несколько встреч с этим, и я пытаюсь в основном вызвать tableView reloadData, но не все значения в ячейке обновляются. Верхние 5 строк всегда не обновляются ...приходится прокручивать вниз, а затем снова вверх, чтобы обновить его.Почему это происходит?

Вот мой код:

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

    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        [cell.textLabel setFont:[UIFont fontWithName:@"Arial" size:16]];
    }


    //add a button to set to accessory view
    UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];
    //I missed setting the frame yesterday!
    //[button setFrame:CGRectMake(200, 20, 20, 20)];
    [button setImage:[UIImage imageNamed:@"addsource.png"] forState:UIControlStateNormal];
    [button addTarget:self action:@selector(changeButton:) forControlEvents:UIControlEventTouchUpInside];
    [button setBackgroundColor:[UIColor clearColor]];
    cell.accessoryView = button;

    if ([[self.content objectAtIndex:indexPath.row] isKindOfClass:[Source class]]){
        Source * source = [self.content objectAtIndex:indexPath.row];
        if (![source.type isEqualToString:@"featured"]){
            [cell.textLabel setText:source.domain];
            NSURL* URL = [NSURL URLWithString:source.imageUrl];
            [cell.imageView setImageWithURL:URL
                           placeholderImage:[UIImage imageNamed:@"placeholder.jpg"]];
        }
    }

    return cell;    
}

, и это вызывается каждый раз, когда я обновляю весь набор данных:

 [self.content removeAllObjects];
        [self.content addObjectsFromArray:objects];
        [self.tableView reloadData];

Ответы [ 2 ]

0 голосов
/ 12 ноября 2011

попробуйте отладить следующую строку: if (![source.type isEqualToString:@"featured"]){

очевидно, ваша ячейка не будет обновлена ​​в случае, когда ваш тип источника "избранный".дважды проверьте все значения в вашем массиве контента

0 голосов
/ 11 ноября 2011

Я не копался в вашем коде, но это звучит как симптом, который вы можете увидеть, когда ячейки используются повторно без полного сброса от их предыдущего появления.

Когда ячейка удаляется, она не сбрасывается, она просто удаляется из табличного представления. Поэтому, если вы не сбросите его при следующем распределении, он перенесет предыдущие настройки и настройки.

Итак, когда вы настраиваете ячейку, убедитесь, что вы восстанавливаете все аспекты ячейки во всех случаях, а не только те настройки для конкретного варианта ячейки, который вы возвращаете на этот раз.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...