2017-11-02 2 views
0

がセルデータに読み込まれていますが、すべてスクロールして正しくフォーマットされていないと、すべてがうまくいきません。だから、私がuitableviewデータであるすべてのロードリストが台無しになったとき、すぐにスクロールとスクロールを開始すると、それが正しく取得され、正しく表示されます。助けてください。UiTableviewCellが正しく読み込まれていない

私のコードここ

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

    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; 
    } 
    for(UIView *v in [cell subviews]) 
    { 
     if([v isKindOfClass:[UILabel class]]) 
      [v removeFromSuperview]; 
     if ([v isKindOfClass:[UIImageView class]]) 
      [v removeFromSuperview]; 
    } 
UIView *CellBGView = [[UIView alloc] initWithFrame:CGRectMake(10, 5, cell.frame.size.width-20, cell.frame.size.height-10)]; 
    CellBGView.backgroundColor = [UIColor whiteColor]; 

    UIImageView *divider = [[UIImageView alloc] initWithFrame:CGRectMake(CellBGView.frame.size.width-155,  CellBGView.frame.size.height-140, 150, 150)]; 
    divider.image = [UIImage imageNamed:@"icon_alpha.png"]; 
    [CellBGView addSubview:divider]; 
    ...... 
    return cell; 
} 

iはリスト、すべてをスクロールすると、所定の位置に

enter image description here

+0

標準セルではなくカスタムセルを使用し、ストーリーボードでレイアウトを設定する必要があります。そしてあなたは本当にTableViewsとTableViewCellsに関するAppleのドキュメントを再読み込みする必要があります。 –

+0

なぜ 'cellForRowAtIndexPath'で' UILabel'と 'UIImage'を削除する必要がありますか? – trungduc

+0

サブビューを再利用しない場合、 'cellForRowAtIndexPath'にサブビューを追加するのは適切ではありません。ユーザーがテーブルビューをスクロールするたびに、新しいビューと新しいビューがセルに追加されます。コードスニペットから、 'CellBGView'と' divider'が割り当てられ、ユーザがスクロールするたびにサブビューとして追加されます。 –

答えて

1
を取得した後、ここにテーブル

enter image description here

をスクロールする前で開いたときに入れています

私は持っていますあなたのための解決策。

  • まず、セルにあなたのイメージとラベルを追加し、DemoTableViewCellinitWithStyle方法でUITableViewCellのサブクラス(例えば、DemoTableViewCellに名前を付ける)

  • を作成します。

  • cellForRowAtIndexPathには、画像とラベルを追加または削除する必要はありません。色を変えたり、画像を設定したりするだけです。

関連する問題