グループ化されたスタイルのテーブルビューを作成しました。このテーブルを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を示しています
スナップショットは、「Adult8」セルまでのuitableviewレンダリングのみを示しています。その後、テーブルは残りのセルをレンダリングしていません。