美文网首页
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