第五课 视图控制器生命周期
1. UITextView
a. NSTextStorage *textStorage;
NSTextStorage 是 NSMutableAttributedString 子类。
b. NSTextContainer *textContainer;
设置文本限定区域。
c. NSLayoutManager
负责对各个字形进行布局。
d. demo
@property (weak, nonatomic) IBoutlet UITextView *body;
// 选中某段文本,点击按钮,把按钮颜色设置到选中文本颜色。
-(IBAction)changeBOdySeleColorButton:(UIButton*)sender
{
[self.body.textStorage addAttribute:NSForegroundColorAttributeName
value:sender.backgroundColor
range:self.body.selectedRange];
}
2. View Controller Lifecycle
a. viewDidLoad :实例化和outlet 设置好后,被调用;是很好的初始化的地方。
但是需要注意,这是view的几何形状(bounds)没有被设置,所以不能确定是iPhone 5 或者iPad 或者其他,所以不要初始化和几何形状相关的代码。
b. viewWillAppear :view出现在屏幕上时,被调用。
如果view隐藏时,有些数据得到了改变,这时该方法被调用时,初始化或更新这些数据。
c. viewWillDisappear
d. viewDidLayoutSubviews : 手机横竖屏转换,系统已经把各元素调整了,现在需要用户调整自己控件位置大小了。
e. didReceivememoryWarning
f. awakeFromNib : 从storyboard中创建时,被调用,view,Controller都会收到。
调用时,outlets 还没有被设置(mvc “loaded”之前调用)
g. 步骤:
awakeFromNib
outlets 被设置
viewDidLoad
viewWillLayoutSubviews and viewDidLayoutSubviews
viewWillAppear and viewDidAppear
viewWillDisappear and viewDidDisappear
3. NSNotification
a. - (void)addObserver:(id)observer
selector:(SEL)methodToInvoke
name:(NSString*)name
object:(id)sender;
observer: 接收消息的对象;
name:消息名
sender:默认nil,设置时,表示接收指定对象的消息
b. - (void)method:(NSNotification*)notification
{
notification.name // 消息名,同上面的name
notification.object // 向你发送通知的对象,同上面的sender
notification.userInfo // 取决于发送消息方设置的数据
}
1. UITextView
a. NSTextStorage *textStorage;
NSTextStorage 是 NSMutableAttributedString 子类。
b. NSTextContainer *textContainer;
设置文本限定区域。
c. NSLayoutManager
负责对各个字形进行布局。
d. demo
@property (weak, nonatomic) IBoutlet UITextView *body;
// 选中某段文本,点击按钮,把按钮颜色设置到选中文本颜色。
-(IBAction)changeBOdySeleColorButton:(UIButton*)sender
{
[self.body.textStorage addAttribute:NSForegroundColorAttributeName
value:sender.backgroundColor
range:self.body.selectedRange];
}
2. View Controller Lifecycle
a. viewDidLoad :实例化和outlet 设置好后,被调用;是很好的初始化的地方。
但是需要注意,这是view的几何形状(bounds)没有被设置,所以不能确定是iPhone 5 或者iPad 或者其他,所以不要初始化和几何形状相关的代码。
b. viewWillAppear :view出现在屏幕上时,被调用。
如果view隐藏时,有些数据得到了改变,这时该方法被调用时,初始化或更新这些数据。
c. viewWillDisappear
d. viewDidLayoutSubviews : 手机横竖屏转换,系统已经把各元素调整了,现在需要用户调整自己控件位置大小了。
e. didReceivememoryWarning
f. awakeFromNib : 从storyboard中创建时,被调用,view,Controller都会收到。
调用时,outlets 还没有被设置(mvc “loaded”之前调用)
g. 步骤:
awakeFromNib
outlets 被设置
viewDidLoad
viewWillLayoutSubviews and viewDidLayoutSubviews
viewWillAppear and viewDidAppear
viewWillDisappear and viewDidDisappear
3. NSNotification
a. - (void)addObserver:(id)observer
selector:(SEL)methodToInvoke
name:(NSString*)name
object:(id)sender;
observer: 接收消息的对象;
name:消息名
sender:默认nil,设置时,表示接收指定对象的消息
b. - (void)method:(NSNotification*)notification
{
notification.name // 消息名,同上面的name
notification.object // 向你发送通知的对象,同上面的sender
notification.userInfo // 取决于发送消息方设置的数据
}
c. removeObserver : 不用时,一定移除消息监听