ios 加载xib遇到的坑

本文介绍了在iOS开发中使用XIB遇到的两个常见问题:一是如何正确设置圆角,特别是在使用AutoLayout时;二是如何调整加载后的XIB大小,使其在界面中显示正确。通过在特定函数中处理布局更新和调用`layoutSubviews`,可以有效解决这些问题。

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;
}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值