xcode masonry 没有设置正确的框架

xcode masonry doesn't set the correct frame

我在一个使用 masonry autolayout 的项目中,我遇到了一些动画问题,所以我要做的就是让一个抽屉从屏幕顶部出现,将与动画一起出现,因此容器视图的内容(可以是 1 个视图或多个视图)是使用带有砌体的视图添加的,我遇到的问题是,当我调试视图时,我得到的框架是总是 Frame(0 0; 0 0) y 因为我需要应用动画我需要框架来捕获容器视图的高度,有没有办法获得正确的框架或者它是处理动画和自动布局的特定方法?

尝试在 viewDidLayoutSubviews 中捕捉框架的高度 UIViewControllerlayoutSubviews 中的 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 中的约束。

另请参阅:https://github.com/SnapKit/Masonry/blob/master/Examples/Masonry%20iOS%20Examples/MASExampleUpdateView.m