随着大小的变化保持约束 ios

Keep constraint as size changes ios

我有这样三个观点:

灰色视图对"Header 1"有顶部约束,"Header 2"对灰色视图有顶部约束。

我正在这样设置灰色视图的动画:

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

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

这使它向上滑动。然而,当灰色视图滑动到 height=0 时,它下面的 "Header 1" 视图保持原样(并在 "Header 1" 和 "Header 2" 之间留下灰色视图曾经所在的空白)。

有什么方法可以让 "Header 2" 在灰色视图折叠时向上滑动?

谢谢!

更新

我试过为约束而不是像这样的实际视图设置动画:

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

这可行,但视图不是动画;它 "jumps" 而不是幻灯片

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

我猜 greysection 有一个恒定的高度限制,例如 200 的值。

您想为此约束(我猜是 IBOutlet)创建一个 属性,并更改 .constant 属性。然后在动画块中调用[self.viewlayoutIfNeeded]