用xib創建的視圖,我們一般要在控制器中獲取對應的view尺寸,但經常我們沒法獲取到,或者獲取的不准
如果通過xib
加載出來的view
尺寸是不正確的, 在xib
中這個view
不管你怎么設置都是治標不治本,我們會在layoutSubviews
通過自己的寬度來計算子控件的尺寸!
//在這里拿出的寬度是不正確的
- (void)awakeFromNib {
}
//對尺寸計算我們一般拿到這個方法中計算(拿到自己寬度計算子控件的尺寸)
- (void)layoutSubviews {
[super layoutSubviews];
//在這里拿到自己的寬度是正確的
}
那我們也會想到, 如果控制器的
view也是xib
創建的, 我們該怎么辦 ? 其實不管控制器是在哪里創建的, 我們只要只在viewDidLayoutSubviews
方法中拿到控制器尺寸來計算子控件尺寸都是正確的, 所以說建議大家以后在viewDidLayoutSubviews
計算尺寸:
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
//在這里計算尺寸
}
也可以在layoutsubview里面進行計算