1, setNeedsDisplay,layoutIfNeeded,layoutSubviews,setNeedsLayout
layoutSubviews 默認(rèn)沒有做任何事,需要子類重寫
- init 不會觸發(fā)layoutSubviews,但initWithFrame初始化 CGRect不為CGRectZero 時會觸發(fā)
- addSubview 會觸發(fā)
- 設(shè)置view的frame 會觸發(fā)
setNeedsLayout 標(biāo)記為需要布局,異步調(diào)用layoutIfNeeded刷新布局,不立即刷新,layoutSubviews一定會被調(diào)用
2,鏈?zhǔn)骄幊?,函?shù)式編程
3,MVVM數(shù)據(jù)雙向綁定
block,rac.kvo監(jiān)聽
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,不會死鎖