星空网 > 软件开发 > 操作系统

iOS学习笔记——使用ChildViewController

之前在使用TableView的时候遇到过问题,需要使用另外的TableViewController来先存放TableView,原有的View则使用ViewContainer来引用TableViewController。此时是第一回接触一个ViewController中使用另一个ViewController。后来在开发的时候遇到另外的问题也需要用到ChildViewController,本来这类问题可以使用自定义的View来解决。在开发Android的时候自定义的View可以指定用某个布局文件,但是iOS的不能给自定义的View指定布局文件,靠代码去实现控件布局就很大难度,于是就搜索ViewContainer相关问题。

    使用ViewContainer其实也是在ViewController中添加一个子的ViewController。在可视化StoryBoard中可以用ViewContainer,但是用纯代码控制的话,还是用ChildViewController比较方便。

    ChildViewController是iOS5出来的新东西,iOS5给UIViewController添加了5个方法和一个属性,围绕着这个ChildViewController

// 方法addChildViewController:removeFromParentViewController: transitionFromViewController:toViewController:duration:options:animations:completion:willMoveToParentViewController:didMoveToParentViewController:// 属性@property(nonatomic,readonly) NSArray *childViewControllers

在我看来以上的方法属性可以望文生义,方法的作用依次是添加ChildViewController、去除ChildViewController,切换ChildViewController,后面的两个方法是有事件性质的,在ChildViewController切换到主的ViewController和切换完之后触发的。

但我现在的应用场景是需要把ChildView放到ScrollView里面,实现翻页的效果。

在StoryBoard中添加了两个ViewController,一个是主的里面添加了UIScrollView,另外添加的是作为添加到ParentViewController的ChildViewController。

iOS学习笔记——使用ChildViewControllerimages/loading.gif' data-original="http://images0.cnblogs.com/blog/441298/201506/282042506114814.png" />iOS学习笔记——使用ChildViewController

先把ChildView的StroyBoard中添加一下命名,那么在主ViewController中构造ViewController时就可以按照StoryBoardID来构造了。

iOS学习笔记——使用ChildViewController

由于UIScrollView实现翻页的功能,所以要对它作以下配置

self.scrollView.contentSize=CGSizeMake(self.view.frame.size.width*pagecount, self.scrollView.frame.size.height);self.scrollView.pagingEnabled=true;

添加ChildViewController的代码如下所示

SunRealAQIViewController *realCV2=[[self storyboard]instantiateViewControllerWithIdentifier:@"test123"];realCV2.view.frame=CGRectMake(self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height);[self addChildViewController:realCV2];[self.scrollView addSubview:realCV2.view];

先是构造ChildViewController,再设置它的frame属性,这时第一页,第一页可以不设置,但第二页第三页就需要去设置,第三行则是调用UIViewController的addChildViewController的方法添加ChildViewController里面,最后则是把ChildView的视图添加到主视图的指定位置,在这里是要添加到ScrollView里面去,所以就是调用[self.scrollView addSubver:]的方法,需要添加多个相同的ChildViewController到ScrollView里面肯定用循环

  for (int i=0; i<pagecount; i++){  SunRealAQIViewController *realCV2=[[self storyboard]instantiateViewControllerWithIdentifier:@"test123"];  realCV2.view.frame=CGRectMake(self.view.frame.size.width*i, 0, self.view.frame.size.width, self.view.frame.size.height);  [self addChildViewController:realCV2];  [self.scrollView addSubview:realCV2.view];} 

就这样子开启了使用ChildViewController的大门!




原标题:iOS学习笔记——使用ChildViewController

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

Shop Direct:https://www.ikjzd.com/w/1821
触发式邮件是特点是什么_优势_如何提高转化率:https://www.ikjzd.com/w/1822
PushAuction:https://www.ikjzd.com/w/1823
康超:https://www.ikjzd.com/w/1824
Ocado_英国零售超市:https://www.ikjzd.com/w/1825
虾刊登:https://www.ikjzd.com/w/1826
九月初新疆旅游服装搭配(新疆游玩必备衣服清单):https://www.vstour.cn/a/408257.html
黄果树瀑布景区景点 - 黄果树瀑布景区景点分布图:https://www.vstour.cn/a/408258.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流