ios – UIView transitionFromView:toView:和布局约束

什么是正确的方式使用[UIView transitionFromView:toView:…]与布局约束?

我想在superview约束toView中安装约束.在转换调用之前,我无法做到,因为View还没有超级视图. (在调用之后但在运行循环进行之前相同)等待直到完成块安装它意味着该视图将具有动画而没有约束.

解决方法

我将使用UIViewAnimationOptionShowHideTransitionViews选项,它允许toView和fromView在转换之前在视图层次结构中,但显示一个并隐藏另一个.

将toView设置为隐藏,将其添加到超级视图中,并在转换之前安装约束.然后,您可以删除完成块中的旧视图.这样的东西

[toView setHidden: YES];
[containerView addSubview: toView];
[containerView addConstraints: [NSLayoutConstraint constraintsWithVisualFormat: @"|[toView]|" options: 0 metrics: nil views: NSDictionaryOfVariableBindings(containerView,toView)]];
[containerView addConstraints: [NSLayoutConstraint constraintsWithVisualFormat: @"V:|[toView]|" options: 0 metrics: nil views: NSDictionaryOfVariableBindings(containerView,toView)]];

[UIView transitionFromView: fromView toView: toView duration: 1.0 options: UIViewAnimationOptionTransitionFlipFromBottom | UIViewAnimationOptionShowHideTransitionViews completion:^(BOOL finished) {
    [fromView removeFromSuperview];
}];

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...