在作動態添加view的功能的時候, 遇到設置xib的frame不許確的問題.具體功能需求以下圖bash
具體的緣由所添加的黃色view在指定了frame的狀況下, 並無按照設定frame展現, 而是和父控件保持了一致, 以下圖:佈局
在百度以後, 結果不少解決辦法都比較一致, 有這樣兩種辦法ui
-(id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
NSArray *nibs=[[NSBundle mainBundle]loadNibNamed:@"XPGovRecUnitView" owner:nil options:nil];
self=[nibs objectAtIndex:0];
tempframe = frame;
[self initSubViews];
}
return self;
}
-(void)drawRect:(CGRect)rect
{
self.frame = tempframe;
}
@end
複製代碼
咱們得知道產生這個問題的緣由, 才能對症下藥, 其實主要就是針對Autoresizing進行設置spa
#import "TempView.h"
@implementation TempView
+ (instancetype)tempView {
return [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:nil options:nil].firstObject;
}
- (void)awakeFromNib {
[super awakeFromNib];
// 起做用的代碼, 取消autoresizing佈局
self.autoresizingMask = UIViewAutoresizingNone;
}
@end
複製代碼