我有一个连接到故事板的IBOutlet NSLayoutConstraint属性:
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *titleViewTopConstraint;
当滚动视图滚动时,我在scrollViewDidScroll方法中修改了这个约束:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGFloat yOffset = scrollView.contentOffset.y;
if (yOffset <= -20) {
[self.logoView mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(@(yOffset));
make.height.equalTo(@(fabs(yOffset) + self.ImageHeight + STATUSBAR_HEIGHT))}];
}
CGFloat top = self.ImageHeight - self.titleView.height - yOffset - 20;
self.titleViewTopConstraint.constant = top;
if (self.titleViewTopConstraint.constant < 25) {
self.titleViewTopConstraint.constant = 25;
}
}
我在滚动视图滚动时尝试更新常量,并且在iOS8中工作正常。但是在iOS7中设置之后,常量似乎没有更新。
知道什么可能导致这个问题,我该如何解决?感谢。
答案 0 :(得分:2)
您需要调用layoutIfNeeded
来更新视图约束。所以一旦你改变你的约束值射击线以下。
[self.view layoutIfNeeded];