随着尺寸的变化保持约束

时间:2015-09-26 17:57:34

标签: ios objective-c constraints

我有三个观点:

enter image description here

灰色视图对"标题1"有一个顶部约束。和#34;标题2"对灰色视图有一个顶级约束。

我正在制作像这样的灰色视图:

    CGRect rect = self.fruitSection.frame;
    rect.size.height = 0;

    [UIView animateWithDuration:0.3 animations:^{
        [self.greySection setFrame:rect];
    }];

这使它向上滑动。但是,当灰色视图滑动到高度= 0时,"标题1"下面的视图保持原样(并在" Header 1"" Header 2"灰色视图曾经是)之间留下空白。

我有没有办法制作" Header 2"当灰色视图坍塌时向上滑动?

谢谢!

更新

我试图动画约束而不是实际视图,如下所示:

   [UIView animateWithDuration:0.5 animations:^{
        self.greyHeightConstraint.constant = 0.0f;
    }];

这是有效的,但视图没有动画;它"跳跃"而不是幻灯片

1 个答案:

答案 0 :(得分:1)

我认为你混淆了#34; Header 1"和#34;标题2"在描述中,你应该做的是为greySection的高度约束设置动画而不是它的框架。

我猜greysection有一个恒定的高度约束,值为200。

你想为这个约束创建一个属性(我想是一个IBOutlet),并改变.constant属性。然后在动画块中调用[self.view layoutIfNeeded]。