ios 載入xib遇到的坑
storyboard,個人覺得是個好玩意兒,但是什麼都做到其中總覺得雜亂。個人偏好把複雜的局部控制項(比如定製的collectionviewcell)在xib檔案中拉好。
在開發過程中遇到不少坑,記憶猶新的是:xib中的組件(比如button)設定圓角的效果不對;載入的xib不能resize大小。
第一個問題:圓角的設定代碼:
view.layer.cornerRadius = view.frame.size.height / 2;
使用了autolayout則需要注意調用的地方:(因為autolayout會重新計算frame,在這裡調用子控制項的frame才是正確的)
- (void)viewDidLayoutSubviews;
好了,如果xib呢?在下面函數中,寫你需要達到的子控制項的效果。
-layoutSubviews;
在xib的擁有者調用以下函數,下面函數會出發layoutSubviews
[xib layoutIfNeeded]
-----------華麗的分割線----------------
第二個問題:你設定了xib的大小,但是介面上xib還是頑固的顯示它的xib中的大小。腫麼辦。
- (void)awakeFromNib { [super awakeFromNib]; //solve UICollectionViewCell subviews do not resize self.contentView.autoresizingMask = //UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth | //UIViewAutoresizingFlexibleRightMargin | //UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleHeight //UIViewAutoresizingFlexibleBottomMargin ; self.contentView.translatesAutoresizingMaskIntoConstraints = YES;}