carousel viewForItemAtIndex
我正在使用reuse view
这样的内容 -
-(UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view{
if (!view){
UIViewController * viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PopUpView"];
view = [viewController.view viewWithTag:1];
CGRect Frame = CGRectMake(view.frame.origin.x+300, view.frame.origin.y, view.frame.size.width+300, view.frame.size.height-350);
view.frame = Frame;
}
这是一个好方法吗?
答案 0 :(得分:5)
我会说这是不是一个好方法。你在这里创建一个视图控制器只是为了立即扔掉它,这是没有意义的。
如果您只需要视图,则可以直接从nib文件加载它而无需视图控制器。您可以将其操作绑定到轮播的主视图控制器(在库中包含的ControlsExample项目中有此示例),或者创建自定义视图类并将子视图出口绑定到视图本身。
如果你想为每个轮播项目视图使用一个视图控制器(我不推荐,因为这不是UITableView或UICollectionView使用的惯例,iCarousel是建模的),那么你应该将视图控制器添加为主旋转木马控制器的子视图控制器,但这很繁琐,因为没有明显的位置可以在视图离屏时再次移除子控制器。)
答案 1 :(得分:1)
根据方法,使用视图控制器的视图没有任何问题。 UIView是你处理它的样子,UIViewController是你处理事件的类。如果你想处理任何事件,那么使用UIViewController的View是一个更好的选择。