多くの行 (〜 100) を持つ UIScrollView があり、サブビュー (行) をすばやく割り当てて追加するために dequeueReusableRow メソッドを実装しました。すべて正常に動作しますが、減速して非常に速くスクロールすると、一部のビューが時間通りに scrollView に追加されません。
- (UIView *)dequeueReusableRow
{
UIView *view = [reusableRows anyObject];
if(view)
{
[[view retain] autorelease];
[reusableRows removeObject:view];
}else{
view = [[UIView alloc] init....
}
return view;
}
- (void)addVisibleRows
{
UIView *row = [self dequeueReusableRow];
row.frame = ....
[scrollView addSubview:row]
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
[self addVisibleRows];
[self removeInvisibleRows];
}
アコーディオンの構造が次のようになっているため、UITableView の使用を提案しないでください。
section
- section
-- section
--- row
- section
section
- row