父子控制器相關(guān)
控制器父子關(guān)系的建立原則
- 如果2個控制器的view是父子關(guān)系(不管是直接還是間接的父子關(guān)系),那么這2個控制器也應(yīng)該為父子關(guān)系
[a.view addSubview:b.view];
[a addChildViewController:b];
// 或者
[a.view addSubview:otherView];
[otherView addSubbiew.b.view];
[a addChildViewController:b];
獲得所有的子控制器
@property(nonatomic,readonly) NSArray *childViewControllers;
添加一個子控制器
//XMGOneViewController成為了self的子控制器
//self成為了XMGOneViewController的父控制器
[self addChildViewController:[[XMGOneViewController alloc] init]];
// 通過addChildViewController添加的控制器都會存在于childViewControllers數(shù)組中
獲得父控制器
@property(nonatomic,readonly) UIViewController *parentViewController;
將一個控制器從它的父控制器中移除
// 控制器a從它的父控制器中移除
[a removeFromParentViewController];
static的作用:
-
修飾局部變量
- 讓局部變量只初始化一次
- 局部變量在程序中只有一份內(nèi)存
- 并不會改變局部變量的作用域,僅僅是改變了局部變量的生命周期(只到程序結(jié)束,這個局部變量才會銷毀)
-
修飾全局變量
- 全局變量的作用域僅限于當(dāng)前文件
實現(xiàn)拷貝的方法
- copy
- 只會產(chǎn)生不可變的副本對象(比如NSString)
- mutableCopy
- 只會產(chǎn)生可變的副本對象(比如NSMutableString)
UIScrollView內(nèi)部子控件添加約束的注意點:
- 子控件的尺寸
不能通過UIScrollView
來計算,可以考慮通過以下方式計算- 可以設(shè)置
固定值
(width==100,height==300) - 可以相對于
UIScrollView以外的其他控件
來計算尺寸
- 可以設(shè)置
- UIScrollView的
frame
應(yīng)該通過子控件以外的其他控件
來計算 - UIScrollView的
contentSize
通過子控件來計算- 根據(jù)
子控件的尺寸
以及子控件與UIScrollView之間的間距
- 根據(jù)
指針p的加減法運算
- 指針p + N
- p里面存儲的地址值 + N * 指針?biāo)赶蝾愋偷恼加米止?jié)數(shù)
- 指針p - N
- p里面存儲的地址值 - N * 指針?biāo)赶蝾愋偷恼加米止?jié)數(shù)
數(shù)組名
- 存儲的是
數(shù)組首元素
的地址 - 等價于:一個指向
數(shù)組首元素
的指針 -
數(shù)組名 + 1
的跨度:數(shù)組首元素
的占用字節(jié)數(shù)
其他結(jié)論
-
&num + 1
的跨度:num
的占用字節(jié)數(shù)