控制器的父子关系
1、控制器父子关系的建立原则
如果2个控制器的view是父子关系(不管是直接还是间接的父子关系),那么这2个控制器也应该为父子关系
2、获得所有的子控制器
3、添加一个子控制器
4、获得父控制器
5、将一个控制器从它的父控制器中移除
6、添加控件到主控件后调用
UIScrollView使用注意
UIScrollView内部子控件添加约束的注意点
1、子控件的尺寸不能通过UIScrollView来计算,可以考虑通过以下方式计算
可以设置固定值(width==100,height==300)
可以相对于UIScrollView以外的其他控件来计算尺寸
2、UIScrollView的frame应该通过`子控件以外的其他控件来计算
3、UIScrollView的contentSize通过子控件来计算
根据子控件的尺寸以及子控件与UIScrollView之间的间距
窗口悬停
不使用自动布局,使用frame
添加几个子控件(UIScrollView -> UIImageView,UIView),直接设置frame确定尺寸
1、分析
这个UIView在达到窗口顶部时一直显示在窗口顶部,但是UIScrollView可以继续向上滚动
监视UIScrollView的偏移量,当view达到顶部时,将view 从UIScrollView中移除,添加到self.view,向下滑动时,到这个原来view 的位置时再把view添加到UIScrollView,再向下拖动就方法图片
实现时要用一个属性来记录view 在UIScrollView中得位置
注意,这里通过storyboard添加的子控件,没有使用自动布局,所以要把自动布局完毕关闭,不然会出现莫名其妙的问题
2、实现
主要是在滚动scrollView时进行判断
自动布局实现
自动布局实现貌似又复杂了,使用自动布局的话,不能直接修改frame,否则会出问题,所以这里新建一个大小一致的view,显示到self.view,
首先要重新生成一个UIView,最好就是克隆一个和redView一样的view,然后设置在原始位置,滚动到顶部时显示,向下滚动时隐藏。
代码如下:
const和指针以及数组
指针与const
总结:const右边修饰的是神马,那这个神马就不可变(p,*p)
指针和数组
一维数组分析
三维数组分析
总结
1、指针p的加减法运算
指针p + N
p里面存储的地址值 + N * 指针所指向类型的占用字节数
指针p - N
p里面存储的地址值 - N * 指针所指向类型的占用字节数
2、数组名
存储的是数组首元素的地址
等价于:一个指向数组首元素的指针
数组名 + 1 的跨度:数组首元素的占用字节数
3、其他结论
&num + 1的跨度:num的占用字节数