自動佈局與非自動佈局的混合使用
有時你可能希望對 UIKit
本身執行的自動佈局計算執行一些其他操作。
示例: 當你的 UIView
有一個 maskLayer
時,你可能需要在自動佈局改變時更新 maskLayer
UIView
的 frame
// CustomView.m
- (void)layoutSubviews {
[super layoutSubviews];
// now you can assume Auto Layout did its job
// you can use view's frame in your calculations
CALayer maskLayer = self.maskLayer;
maskLayer.bounds = self.bounds;
...
}
或者如果你想對 ViewController
中的自動佈局採取一些額外的動作
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
// now you can assume all your subviews are positioned/resized correctly
self.customView.frame = self.containerView.frame;
}