美文网首页
XIb构建的View没有显示

XIb构建的View没有显示

作者: BestBoy | 来源:发表于2019-12-13 19:09 被阅读0次

    Xib构建的View设置背景色无效,显示位置不正常

    问题描述:xib创建的view,在Ctroller加载的时候,显示的位置错乱,以及设置背景色不生效。

    • 期初怀疑是执行loadNibNamed:方法在viewDidLoad的时候没有加载出来Fream,然后在viewWillAppear方法打印view,发现fream是存在的。
    <YZXYMinePromotionView: 0x1058a4860; frame = (0 0; 414 40); autoresize = W+H; layer = <CALayer: 0x28379b580>>
    

    fream存在的,也没有错误。

    • 发现日志里面有一个autoresize = W+H
    typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
        UIViewAutoresizingNone                 = 0,
        UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,
        UIViewAutoresizingFlexibleWidth        = 1 << 1,
        UIViewAutoresizingFlexibleRightMargin  = 1 << 2,
        UIViewAutoresizingFlexibleTopMargin    = 1 << 3,
        UIViewAutoresizingFlexibleHeight       = 1 << 4,
        UIViewAutoresizingFlexibleBottomMargin = 1 << 5
    };
    

    W对应UIViewAutoresizingFlexibleWidth
    H对应UIViewAutoresizingFlexibleHeight

    就是view会随着父视图的大小改变而改变


    • 解决方案一:
    view.autoresizingMask = UIViewAutoresizingNone;
    

    这个属性就是view不会随着父视图改变

    • 解决方案二
    -(void)layoutSubviews{
        [super layoutSubviews];
        CGRect fream = self.frame;
        fream.size.height = 50;
        [self setFrame:fream];
    }
    

    在view里面设置一下。

    相关文章

      网友评论

          本文标题:XIb构建的View没有显示

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