美文网首页
使用xib时遇到的坑

使用xib时遇到的坑

作者: iLeooooo | 来源:发表于2018-01-18 09:56 被阅读28次

    创建xib的时候不选择导航栏,让View从导航栏下面开始显示
    在ViewController的父类的viewDidLoad方法加一句代码

    self.edgesForExtendedLayout = UIRectEdgeBottom;
    
    方法一

    直接在viewDidLoad里面判断该子类控制器是不是用xib加载的

     //可以根据nibName是否为空来判断该子类视图是否通过xib创建
     if (self.nibName.length > 0) {
        self.edgesForExtendedLayout = UIRectEdgeBottom;
     }
    
    方法二

    为了在项目里面更好的处理Xib的问题,可以直接建立1个所以xib继承的父类直接继承公共的父类,然后在代码里面加上self.edgesForExtendedLayout = UIRectEdgeBottom;
    或者也可以在纯代码的控制器中设置self.edgesForExtendedLayout = UIRectEdgeAll;

    今天遇到一个用xib创建view的时候,是在约束不生效的问题
    解决:一定要在加载xib文件之后给view设置一次frame才可以。

    - (instancetype)initWithFrame:(CGRect)frame {
    
        self = [super initWithFrame:frame];
        if (self) {
            self = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:nil options:nil] firstObject];
            //这里设置frame,不然xib的约束不起作用
            self.frame = frame;
        }
        return self;
    }
    

    慢慢来,一步一个巴掌印~~~

    相关文章

      网友评论

          本文标题:使用xib时遇到的坑

          本文链接:https://www.haomeiwen.com/subject/gguioxtx.html