默认创建的xib,storyboard文件会打包到mainbundle中,mainbundle类似于一个压缩包,平时用mainbundel做事情是因为,编译项目后,会打包到mainbundle中
一般来说 控制器做数据源
初始化子控制器放到初始化scrollview前面,先有子控制器,再往scrollview上加子控制器的view
分模块管理,要修改某个模块只要对应的子控制器就可以了
从数组中取,如果要取出多个,借助for循环
其中的数字不能直接写死,应该用数组中元素个数count代替
一个控制器的view默认就是整个屏幕的宽高,x,y默认是0,0基于这一点,可以不用设置它的宽度,高度,y,只设置x
没有设置它的y值应该是0,应该是顶头,为什么跑到下面了,因为这些tableview是加到scrollview上面,scrollview一旦处在导航栏环境下,会自动将它里面的内容下移动64,其实是因为设置了64的内边距
假设要让tableview占据整个屏幕,就是说它的宽度和高度是整个屏幕这么大,不管会不会被导航栏和tabbar挡住
首先去掉那个效果,控制器的属性,不允许自动设置修改scrollview的内边距
self.automaticallyAdjustsScrollViewInsets = NO;
这样设置以后,明明把64的内边距消掉,可是为什么还有20的内边距,没有占据整个屏幕,打印tableview的y值后发现,有个20的y值,高度也比屏幕的高度少了个20
但是为什么是20呢?自己没有设置20的y值啊?
如果是普通的控制器,x,y就是0,0,宽度和高度确实填充整个屏幕
如果是tableview控制器,y值就会弄成20,高度少20
自己创建出来加到别人身上就是20,加到别人上面的话cell会被挡住,苹果给它设计的时候就是这样子的,加了个20就不会被挡住
xcode7以前所有的控制器view的y值都是20,从7开始才有全屏的概念
所以还应该设置它的y值是0,它的高度也要设置为scorllview的高度
为什么要占据整个屏幕呢?
因为要做个效果出来
拿到子控制器,把子控制器的view加到scrollview身上,并且它们的x是从左往右排布
随即色是需要的,用于写代码测试的时候
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID forIndexPath:indexPath];
must register a nib or a class for the identifier
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
有多少个控制器就有多少倍,必须设置contentsize,scorllview的滚动范围,否则没法滚动
for循环五次不要每次都点属性,因为点是调方法,一次就够了