【发布时间】:2013-06-16 19:07:07
【问题描述】:
我的应用中有一个全屏UICollectionView。它水平滚动,每个单元格填充集合视图的边界。集合视图由UIViewController 管理。
鉴于每个“页面”都相当复杂,因此每个页面本身都由关联的UIViewController 管理是有意义的。 iOS 5 支持视图控制器包含,因此当视图被附加和分离时,子控制器应该接收适当的生命周期方法(例如viewWillAppear: 等)。这与视图回收有多大的关系?
从页面“1”滚动到“2”,将创建一个新视图(因为在触地期间两者可以同时出现在屏幕上)。从页面“2”移动到“3”,UICollectionView 可以成功地将页面“1”的视图出列,但是现在会发生什么?我会像这样将视图强行插入视图控制器三吗?
id cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"ident" forIndexPath:indexPath];
UIViewController *child_controller = [self controllerAtIndexPath:indexPath];
[child_controller setView:cell];
// ... and so on
这感觉不对。但是,我想不出在这种情况下正确重用视图的正确方法。我是否完全采取了错误的方法?
【问题讨论】:
-
如果每个单元格都填充了集合视图的边界,为什么不直接使用
UIPageViewController并将其transitionStyle设置为UIPageViewControllerTransitionStyleScroll?它旨在为每页托管一个子视图控制器。
标签: ios uiviewcontroller uicollectionview