2011-07-06 6 views
1

スクロール中にUITableViewCellが割り当てられている場合は、再割り当てしないでください。それはしかしです。それをどうやって防ぐことができますか?スクロール中にUITableViewCellが何度も何度も割り当てられています

+0

場合は、これらのラベルやあなたはこの外に何をしたいコントロールを使用するようcellForRowAtIndexPathであなたはセルを再利用したい場合は、コードをいくつかのこと私たちは考えを得ることができるように正確にやっている... – iBapu

答えて

0

その

static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 


    if (cell == nil) 
    { 
    CGRect CellFrame; 

     CGRect nameLabelFrame; 

     CGRect countLabelFrame; 

     CellFrame = CGRectMake(0, 0, 320, 80); 

     nameLabelFrame = CGRectMake(10, 10, 270, 50); 
     countLabelFrame = CGRectMake(10, 58, 270, 12); 


     cell = [[[UITableViewCell alloc] initWithFrame:CellFrame reuseIdentifier:CellIdentifier] autorelease]; 
     UILabel *lblTemp; 
     //UIImageView *imgTemp; 

     lblTemp = [[UILabel alloc] initWithFrame:nameLabelFrame]; 
     lblTemp.tag = 1; 
     [cell.contentView addSubview:lblTemp]; 
     [lblTemp release]; 



     lblTemp = [[UILabel alloc] initWithFrame:countLabelFrame]; 
     lblTemp.tag = 3; 
     [cell.contentView addSubview:lblTemp]; 
     [lblTemp release]; 

} 

//And outside of if condition access these labels by this 

    //UIConstruction 
     UILabel *nameLabel = (UILabel *)[cell viewWithTag:1]; 

     UILabel *countLabel = (UILabel *)[cell viewWithTag:3]; 

とあなたは何のためにいくつかのコードを書いたしなければならない条件

+0

私はなぜこれがdownvoted ??? !!!! – KingofBliss

+0

'initWithFrame:reuseIdentifier'は3.0のように廃止され、heightはデリゲートメソッドで設定されました。また、タグを使用する代わりに、UITableViewCellをサブクラス化し、そのクラスのプロパティとしてUILabelsを設定する方がはるかに優れています。特に、 'setFrame: 'をオーバーライドしてセルのサイズを変更するとサイズを変更できるためです。 – EmilioPelaez

+0

@EmilioPelaez frameそれは、あなたがheightForRowAtIndexPathを使用するつもりはないという意味ではありません。これはフレームを調整するためです。また、私は正確な解決策を与えていません。まったくのアイデア、誰も全体のコードを書くつもりはありません。また、cell.soソリューションを再利用するための別の方法があります。 – Ishu

関連する問題