xcode masonry 没有设置正确的框架
xcode masonry doesn't set the correct frame
我在一个使用 masonry autolayout 的项目中,我遇到了一些动画问题,所以我要做的就是让一个抽屉从屏幕顶部出现,将与动画一起出现,因此容器视图的内容(可以是 1 个视图或多个视图)是使用带有砌体的视图添加的,我遇到的问题是,当我调试视图时,我得到的框架是总是 Frame(0 0; 0 0) y 因为我需要应用动画我需要框架来捕获容器视图的高度,有没有办法获得正确的框架或者它是处理动画和自动布局的特定方法?
尝试在 viewDidLayoutSubviews
中捕捉框架的高度 UIViewController
或 layoutSubviews
中的 UIView
。
要为 AutoLayout
应用动画,您必须像这样重置约束:
// tell constraints they need updating
[self setNeedsUpdateConstraints];
// update constraints now so we can animate the change
[self updateConstraintsIfNeeded];
[UIView animateWithDuration:0.4 animations:^{
[self layoutIfNeeded];
}];
并更新或重新制作 updateConstraints
中的约束。
我在一个使用 masonry autolayout 的项目中,我遇到了一些动画问题,所以我要做的就是让一个抽屉从屏幕顶部出现,将与动画一起出现,因此容器视图的内容(可以是 1 个视图或多个视图)是使用带有砌体的视图添加的,我遇到的问题是,当我调试视图时,我得到的框架是总是 Frame(0 0; 0 0) y 因为我需要应用动画我需要框架来捕获容器视图的高度,有没有办法获得正确的框架或者它是处理动画和自动布局的特定方法?
尝试在 viewDidLayoutSubviews
中捕捉框架的高度 UIViewController
或 layoutSubviews
中的 UIView
。
要为 AutoLayout
应用动画,您必须像这样重置约束:
// tell constraints they need updating
[self setNeedsUpdateConstraints];
// update constraints now so we can animate the change
[self updateConstraintsIfNeeded];
[UIView animateWithDuration:0.4 animations:^{
[self layoutIfNeeded];
}];
并更新或重新制作 updateConstraints
中的约束。