我在viewDidLoad
int height = 367 - self.vLayout.frame.size.height;
int adjustHeight = height / 2;
self.csPanelBottom.constant = adjustHeight - 2;
if (height % 2 != 0) {
adjustHeight += 1;
}
self.csPanelTop.constant = adjustHeight + 2;
将调整面板以使屏幕居中。
一切正常,我得到iOS6和iOS7的正确adjustHeight
值
但是当我在iOS7上设置常量时它没有更新。布局仍然相同。
我不知道是什么原因导致这种情况,因为我有另一个页面使用了相同的代码,并且页面没有这样的问题。
知道什么可能导致这个问题,我该如何解决? 感谢。
答案 0 :(得分:3)
最有可能的是,要填充更改,您需要添加
[self.view setNeedsLayout];
[self.view layoutIfNeeded];
但是,将视图与中心对齐的方法并不正确。正确的方法是在Interface Builder中添加一个居中约束:
或代码中:
// Replace viewNeedingCenter and containerView with your actual views
[containerView addConstraint:
[NSLayoutConstraint constraintWithItem:viewNeedingCenter
attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual
toItem:containerView
attribute:NSLayoutAttributeCenterY
multiplier:1.0 constant:0]];