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