Может кто-нибудь сказать мне, почему данные просмотра таблицы не отображаются до прокрутки? - PullRequest
0 голосов
/ 29 декабря 2011

В моем табличном представлении я установил отображение данных xml, но до прокрутки он не отображает все значения.Я перезагрузил таблицу, когда я получаю свои данные XML.Я также использовал [cell.contenView viewWithTag:tagnumber]; Но все же сейчас он не работает ... Пожалуйста, помогите мне кто-нибудь ....

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

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

static NSString *MyIdentifier = @"MyIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil) {
    //cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease];
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:MyIdentifier] autorelease];
    cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:15.0];
    cell.selectionStyle = UITableViewCellSelectionStyleBlue;

    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"arrow.png"]];
    cell.accessoryView = imageView;
    tableView.separatorColor = [UIColor clearColor];
    tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;

          // THIS IS A VIEW ABOVE MY CELL NAME: cellView    

    cellView = [[[UIView alloc] initWithFrame:CGRectMake(0,0,290, 120)] autorelease];
    cellView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"order_description_bg.png"]];
    cellView.tag =10;

         // THIS IS A IMAGEVIEW ABOVE MY cellView NAME: imgView

    imgView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 15, 39, 36)];
    imgView.image = [UIImage imageNamed:@"order_image.png"];
    imgView.layer.borderColor = [UIColor blackColor].CGColor;
    imgView.layer.borderWidth = 0.0f;
    imgView.tag = 5;

           // THIS IS A LABEL ABOVE MY cellView NAME: statusLabel

            CGRect statusRect = CGRectMake(65, 0, 190, 18);
    statusLabel = [[[UILabel alloc] initWithFrame:statusRect] autorelease];
    statusLabel.textAlignment = UITextAlignmentLeft;
    statusLabel.textColor = [UIColor blackColor];
    statusLabel.font = [UIFont systemFontOfSize:12];
    statusLabel.backgroundColor = [UIColor greenColor];
    statusLabel.tag = 1;

    [cell.contentView addSubview:cellView];
    [cellView addSubview:statusLabel];
    [cellView addSubview:imgView];

}


  //  [cell.contentView superview];
cellView = (UIView *)[cell.contentView viewWithTag:10];
imgView = (UIImageView *)[cellView viewWithTag:5];
statusLabel = (UILabel *)[cellView viewWithTag:1];

if(searching == YES && x<=inumOfRowAfterSearch){
        NSLog(@"[[searchData objectAtIndex:m] intValue] is : %d",[[searchData objectAtIndex:inumOfRowAfterSearch] intValue]);
            y = [[searchData objectAtIndex:inumOfRowAfterSearch] intValue];

    cellView = (UIView *)[cell.contentView viewWithTag:10];
    imgView = (UIImageView *)[cellView viewWithTag:5];
    statusLabel = (UILabel *)[cellView viewWithTag:1];

    if(pendingOrder == NO && todaysOrder == NO && x<=inumOfRowAfterSearch){
        statusLabel.text = [NSString stringWithFormat:@"Status: %@",[[records objectAtIndex:y] objectAtIndex:1]];
     }
    else if(pendingOrder == YES && todaysOrder == NO && x<=inumOfRowAfterSearch){
        statusLabel.text = [NSString stringWithFormat:@"Status: %@",[[records objectAtIndex:y] objectAtIndex:1]];
    }
}
else{

    cellView = (UIView *)[cell.contentView viewWithTag:10];
    imgView = (UIImageView *)[cellView viewWithTag:5];
    statusLabel = (UILabel *)[cellView viewWithTag:1];

    if(pendingOrder == NO && todaysOrder == NO){
      statusLabel.text = [NSString stringWithFormat:@"Status: %@",[[records objectAtIndex:indexPath.section] objectAtIndex:1]];
        NSLog(@"status lable value: %@",statusLabel.text);
        }
    else if(pendingOrder == YES && todaysOrder == NO){
        statusLabel.text = [NSString stringWithFormat:@"Status: %@",[[pendingRecords objectAtIndex:indexPath.section] objectAtIndex:1]];
        }
}
return cell;
}

Перед прокруткой таблицы.

enter image description here

После прокрутки просмотр таблицы

enter image description here

1 Ответ

0 голосов
/ 29 декабря 2011

Следующие коды не нужны в каждом условии, так как вы написали код вне условия. Кажется, дубликат.

cellView = (UIView *)[cell.contentView viewWithTag:10];
imgView = (UIImageView *)[cellView viewWithTag:5];
statusLabel = (UILabel *)[cellView viewWithTag:1];

А что касается вашего вопроса, кажется, что изначально он пропускает условия if и else if. Прокомментируйте также NSLog s и напишите NSLog в else части условий.

Edit:

//  [cell.contentView superview];
cellView = (UIView *)[cell.contentView viewWithTag:10];
imgView = (UIImageView *)[cellView viewWithTag:5];
statusLabel = (UILabel *)[cellView viewWithTag:1];

if(searching == YES && x<=inumOfRowAfterSearch){
    NSLog(@"[[searchData objectAtIndex:m] intValue] is : %d",[[searchData objectAtIndex:inumOfRowAfterSearch] intValue]);
    y = [[searchData objectAtIndex:inumOfRowAfterSearch] intValue];

    if(pendingOrder == NO && todaysOrder == NO ){
        statusLabel.text = [NSString stringWithFormat:@"Status: %@",[[records objectAtIndex:y] objectAtIndex:1]];
    }
    else if(pendingOrder == YES && todaysOrder == NO ){
        statusLabel.text = [NSString stringWithFormat:@"Status: %@",[[records objectAtIndex:y] objectAtIndex:1]];
    }
    else
    {
        statusLabel.text = [NSString stringWithFormat:@"Status: None"];
    }
}
else{
    if(pendingOrder == NO && todaysOrder == NO){
        statusLabel.text = [NSString stringWithFormat:@"Status: %@",[[records objectAtIndex:indexPath.section] objectAtIndex:1]];
        NSLog(@"status lable value: %@",statusLabel.text);
    }
    else if(pendingOrder == YES && todaysOrder == NO){
        statusLabel.text = [NSString stringWithFormat:@"Status: %@",[[pendingRecords objectAtIndex:indexPath.section] objectAtIndex:1]];
    }
    else
    {
        statusLabel.text = [NSString stringWithFormat:@"Status: None"];
    }
}
return cell;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...