XIb构建的View没有显示

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

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

  • 期初怀疑是执行loadNibNamed:方法在viewDidLoad的时候没有加载出来Fream,然后在viewWillAppear方法打印view,发现fream是存在的。
>

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没有显示)