ios 加载xib遇到的坑

storyboard,个人觉得是个好玩意儿,但是什么都做到其中总觉得杂乱。个人偏好把复杂的局部控件(比如定制的collectionviewcell)在xib文件中拉好。

在开发过程中遇到不少坑,记忆犹新的是:xib中的部件(比如button)设置圆角的效果不对;加载的xib不能resize大小。

第一个问题:

圆角的设置代码:

1
view.layer.cornerRadius = view.frame.size.height / 2 ;


使用了autolayout则需要注意调用的地方:(因为autolayout会重新计算frame,在这里调用子控件的frame才是正确的)

1
- ( void )viewDidLayoutSubviews;


好了,如果xib呢?在下面函数中,写你需要达到的子控件的效果。

1
-layoutSubviews;


在xib的拥有者调用以下函数,下面函数会出发layoutSubviews


1
[xib layoutIfNeeded]


-----------华丽的分割线----------------

 

第二个问题:

你设置了xib的大小,但是界面上xib还是顽固的显示它的xib中的大小。肿么办。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
- ( void )awakeFromNib {
     [ super awakeFromNib];
 
     //solve UICollectionViewCell subviews do not resize
     self.contentView.autoresizingMask =
         //UIViewAutoresizingFlexibleLeftMargin |
         UIViewAutoresizingFlexibleWidth |
         //UIViewAutoresizingFlexibleRightMargin |
         //UIViewAutoresizingFlexibleTopMargin |
         UIViewAutoresizingFlexibleHeight
         //UIViewAutoresizingFlexibleBottomMargin
     ;
     self.contentView.translatesAutoresizingMaskIntoConstraints = YES;


你可能感兴趣的:(ios 加载xib遇到的坑)