Autolayout - 添加和运行约束

时间:2014-01-18 00:23:08

标签: ios nslayoutconstraint

我有一个包含2个容器视图的视图:一个位于顶部,一个位于底部。

当应用程序启动时,底部的应用程序将通过超出屏幕高度的框架隐藏。同时,最重要的一个占据整个应用程序窗口。

当我决定展示底部容器时,我希望顶部容器的高度减小,并且主容器中控制器的视图也会受到影响。

我尝试以编程方式添加约束并使用layoutIfNeeded但没有任何效果。

我是新手。我不一定想得到最好的答案,但我应该如何处理这个问题。

感谢!!!!

-(void)showBottom {
    NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:self.bottomContainer attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.mainContainer attribute:NSLayoutAttributeTop multiplier:1.0f constant:49.0f];
    [self.view addConstraint:constraint];
}

1 个答案:

答案 0 :(得分:1)

您可以尝试使用Top Space to Superview约束固定对象并为其设置动画。

// .h
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *topConstraint;

// .m
[UIView animateWithDuration:1.0 animations:^{
    self.topConstraint.constant = 0;
    [self.nView layoutIfNeeded];
}];