0

私は uitableview を作成しました。それを起動すると、想定どおりに見えますが、スクロールすると、指定していない他のすべてのセクションにテキストが表示されます。誰か助けてください。添付された最初の画像は、それがどのように見えるかです。2番目は、スクロールしたときの動作です。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    if (section == 0 ){
        return 1;}
    else if (section == 1){
        return [cellLabels count];
    }else if (section == 2){
        return 1;
    }else{
        return 0;
    }

}

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

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
    }
    tableView.showsVerticalScrollIndicator = NO;
    // cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    tableView.separatorStyle = UITableViewCellSeparatorStyleNone;


    if( indexPath.section == 0 )
    {
    }
    else if (indexPath.section == 1)
    {
        cell.textLabel.backgroundColor = [UIColor clearColor];
        cell.textLabel.textColor = [UIColor blackColor];
        // headerLabel.font = [UIFont SystemFontOfSize:16];
        [cell.textLabel setFont:[UIFont fontWithName:@"Arial" size:14]];
        cell.textLabel.text = [cellLabels objectAtIndex:indexPath.row];


    }
return cell;

}

これは、起動時の外観と、本来あるべき外観です。

ここに画像の説明を入力

4

1 に答える 1

1

あなたの問題は非常に単純です、

テーブルビューは割り当てられたセルを再利用するため、最初のセクションでは何も表示せず、2番目のセクションではカスタムテキストを表示します。

下にスクロールして戻ると、テキストが最初のセクションに表示されます。

if( indexPath.section == 0 )
{
}

それは何もしません

成功する

if( indexPath.section == 0 )
{
   cell.textLabel.text = @"";
}
else if( indexPath.section == 2 )
{
   cell.textLabel.text = @"";
}

また

if( indexPath.section == 0 )
{
   cell.textLabel.text = nil;
}

else if( indexPath.section == 2 )
{
   cell.textLabel.text = nil;
}

その他のセクション1は正しい

于 2012-04-14T20:58:18.310 に答える