私はフルスクリーンUICollectionView
をアプリに持っています。これは水平方向にスクロールし、各セルはコレクションビューの境界線を塗りつぶします。コレクションビューはUIViewController
によって管理されます。UICollectionView内のUIViewController
各「ページ」は相当に複雑ですが、各ページ自体が関連するUIViewController
によって管理されていることが理にかなっています。 iOS 5ではビューコントローラの格納がサポートされているため、ビューの着脱時に子コントローラが適切なライフサイクルメソッド(例:viewWillAppear:
など)を受け取るようにします。ビューのリサイクルでこれはうまくいくでしょうか?
ページ「1」から「2」にスクロールすると、新しいビューが作成されます(両方が同時にタッチダウン中にオンスクリーンになる可能性があります)。ページ「2」から「3」に移動すると、UICollectionView
はページ「1」のビューをデキューできましたが、今はどうなりますか?私は強制的にView Controller 3にビューを挿入しますか?
id cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"ident" forIndexPath:indexPath];
UIViewController *child_controller = [self controllerAtIndexPath:indexPath];
[child_controller setView:cell];
// ... and so on
これは間違っています。しかし、この例では、ビューを正しく再利用する正しい方法を考えることはできません。間違ったアプローチをとっていますか?
各セルがコレクションビューの境界線を埋める場合は、なぜ 'UIPageViewController'を' transitionStyle'を 'UIPageViewControllerTransitionStyleScroll'に設定して使用しないのですか?ページごとに1つの子ビューコントローラをホストするように設計されています。 –