自动布局与非自动布局的混合使用
有时你可能希望对 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;
}