1, setNeedsDisplay,layoutIfNeeded,layoutSubviews,setNeedsLayout
layoutSubviews 默认没有做任何事,需要子类重写
- init 不会触发layoutSubviews,但initWithFrame初始化 CGRect不为CGRectZero 时会触发
- addSubview 会触发
- 设置view的frame 会触发
setNeedsLayout 标记为需要布局,异步调用layoutIfNeeded刷新布局,不立即刷新,layoutSubviews一定会被调用
2,链式编程,函数式编程
3,MVVM数据双向绑定
block,rac.kvo监听
4,GCD
NSLog(@"1");
dispatch_async(dispatch_get_global_queue(0, 0), ^{
NSLog(@"2");
dispatch_sync(dispatch_get_main_queue(), ^{
NSLog(@"3");
});
NSLog(@"4");
});
NSLog(@"5");
15234,不会死锁
网友评论