美文网首页
【ios】xib view autolayout

【ios】xib view autolayout

作者: haifengmay | 来源:发表于2016-06-10 13:32 被阅读243次

      最近在用xib做view的autolayout时,遇到了view的大小不能改变的问题,后来经过查资料,应该是没有配置view的约束问题。


    autolayout - Reuse a uiview xib in storyboard - Stack Overflow

    Works in Xcode 6.3.1

    Create a new UIView named 'ReuseableView'

    File > New > File > Source > Cocoa Touch Class > UIView

    Create a matching xib file named 'ReuseableView'

    File > New > File > User Interface > View

    Set the file owner of the of the xib

    select the xib

    select file's owner

    set custom class to 'ReusableView' in the Identity Inspector.

    Note: Do not set the custom class of the view on the xib. Only the File Owner!

    Make an outlet from the view in the ReuseableView.xib to your ReuseableView.h interface

    Open Assistant Editor

    Control + Drag from the view to your interface

    Add initWithCoder implementation to load view and add as a subview.

    - (id)initWithCoder:(NSCoder *)aDecoder{

    self = [super initWithCoder:aDecoder];

    if (self) {

    // 1. load the interface

    [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil];

    // 2. add as subview

    [self addSubview:self.view];

    // 3. allow for autolayout

    [self.view setTranslatesAutoresizingMaskIntoConstraints:NO];

    // 4. add constraints to span entire view

    [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[view]|" options:0 metrics:nil views:@{@"view":self.view}]];

    [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[view]|" options:0 metrics:nil views:@{@"view":self.view}]];

    }

    return self;

    }

    Test your reuseable view in a storyboard

    Open your storyboard

    Add a view

    Set that view's Custom Class

    Run and observe!

    相关文章

      网友评论

          本文标题:【ios】xib view autolayout

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