0

グループ化されたスタイルのテーブルビューを作成しました。このテーブルをUIScrollViewのサブビューに追加しました。テーブルの行数に応じてテーブルのサイズを計算しました。したがって、tableViewのスクロールはありません。すべてのセルを見ることができます。

初めてテーブルが正しく機能し、すべてのセルが表示されます。しかし、私の問題は、次のページに移動して戻ってそのテーブルをリロードすると、割り当てられたセルのみがレンダリングおよび再描画されることです。再利用されているセルは再描画されていません。tableView:cellForRowAtIndexPath:もこれらのセルに対して呼び出されていません。

テーブルビューのスクロールが無効になっているため、再利用されたセルのcellForRowAtIndexPathメソッドが呼び出されず、レンダリングされていないのではないかと思います。

次の方法でtableViewを作成しました

 m_TravellerDetailTable = [[UITableView alloc] initWithFrame: CGRectMake( 2.0f, 0, 315.0f, 370 ) style: UITableViewStyleGrouped ];
 float height = (tableViewCellHeight * [travellersArray count]);
 m_TravellerDetailTable.frame = CGRectMake(2, 0, 315, height);
 [m_TravellerDetailTable setBounces: NO];
 [m_TravellerDetailTable setScrollEnabled: NO];
 [m_BaseScrollView addSubview: m_TravellerDetailTable];

UITableViewDelegateメソッド

 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
   {
       return [travellersArray count];
   }

 -(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
   {
       return tableViewCellHeight;
   }

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

     static NSString *CellIdentifier = @"Cell";
     cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     if (cell == nil) 
     {

            cell = [[TravellerDetailCustomCellView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
     }


     TravellerDetailCustomCellView *customCell = (TravellerDetailCustomCellView *)cell;
     [customCell.textLabel setText:[travellerInfoFromDetailForm objectForKey:@"DOB"]];
  }

このスナップショットは、すべてのセルをレンダリングするuitableviewを示しています

すべてのセルを含むUITableView

スナップショットは、「Adult8」セルまでのuitableviewレンダリングのみを示しています。その後、テーブルは残りのセルをレンダリングしていません。

再利用されたセルのないUITableView

4

2 に答える 2

1

レンダリング中ですが、フレームが小さすぎてテーブルビューが途切れています。

削除する必要があります

[m_TravellerDetailTable setBounces: NO];
[m_TravellerDetailTable setScrollEnabled: NO];
于 2012-09-14T10:34:38.070 に答える
0

UIScrollView が原因です。UIScrollView はサブビューの描画をキャッシュしました。UITableView を UIScrollView に追加しないことをお勧めします

于 2012-09-14T10:50:03.967 に答える