我创建一个继承UIView
的视图并将其添加到superView
。但是,当我查看视图的框架时,发现它已被更改。但是我的代码没有做到这一点。我不知道为什么让我们看一下代码。
- (void)addBottomView
{
NSArray *viewArray = [[NSBundle mainBundle] loadNibNamed:@"WYOrderDetailBottomView" owner:nil options:nil];
if (viewArray.count > 0) {
self.bottomContentView = viewArray.firstObject;
}
self.bottomContentView.delegate = self;
self.bottomContentView.frame = CGRectMake(0.0f, 0.0f, SCREENWIDTH, 0.0f);
MLOG(@"%@", NSStringFromCGRect(self.bottomContentView.frame));
self.bottomViewHeightConstraint.constant = 0.0f;
[self updateViewConstraints];
[self.view layoutIfNeeded];
MLOG(@"%@", NSStringFromCGRect(self.bottomContentView.frame));
[self.bottomBackView addSubview:self.bottomContentView];
MLOG(@"%@", NSStringFromCGRect(self.bottomContentView.frame));
}
像这样在
viewDidLoad
中调用此方法,iphone6中视图的框架日志为(0,0,375,0)。- (void)viewDidLoad
{
[super viewDidLoad];
self.title = @"预约单详情";
self.isNeedRefreshUI = YES;
[self addBottomView];
[self configTableView];
[self addNotificationObserver];
}
但是在另一种方法中,我检查了
view(self.bottomContentView).
的框架- (void)getOrderDetailInfo
{
MLOG(@"%@", NSStringFromCGRect(self.bottomContentView.frame));
}
框架更改为(0,0,430,0),我没有编写任何代码来更改其框架。怎么运行的?
最佳答案
如果您使用的是Storyboard或Xib,则自动版式或约束条件将自动设置框架。在[self addBottomView];
或viewWillAppear
中调用此方法viewDidAppear
手动设置框架
Stackoverflow和
Apple Documentation
关于ios - View 的宽度发生奇怪的变化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34409574/