随着大小的变化保持约束 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]
我有这样三个观点:
灰色视图对"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]