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