将 UIView 隐藏在其他 UIView 后面/下方,并从该视图中显示



我有一个名为 View1UIView用于一些主要选项,另一个视图包含一些名为 View2 的额外选项。

我想把View2藏在View1后面.然后,当我想展示它时,View2应该来自View1后面.我在网上尝试了不同的代码,但没有得到任何适当的解决方案。

我的理解是你有 2 个子视图,一个你想从另一个后面制作动画。我将主视图声明为 superView,将顶部子视图声明为 view1,将动画下视图声明为 view2。假设已添加视图 1。

targetFrame 是 view2 最终目的地的 CGRect

[view2 setFrame:view1.frame];
[superView insertSubview:view2 belowSubview:view1];
// Call this when you want to move view2
[UIView animateWithDuration:animationDuration animations:^{
    [view setFrame:targetFrame];
}];

这里的信息并不多。最简单的解决方案是将View2带到前面。 theSuperView的观点既View1View2

theSuperView.bringSubviewToFront(View2)

另一个简单的解决方案是隐藏View1

View1.hidden = true

不过,对于用户来说,有更好的体验。对于这种类型的实例,使用动画过渡到视图会好得多。

斯威夫特 2

UIView.transitionFromView(View1, toView: View2, duration: .3, options: UIViewAnimationOptions.TransitionFlipFromLeft, completion: nil)

斯威夫特 3, 4, 5

UIView.transition(from: View1, to: View2, duration: 0.3, options: UIView.AnimationOptions.transitionFlipFromLeft, completion: nil)

您可以在此处将大量内容放入 options 参数中,包括:

TransitionNone
TransitionFlipFromLeft
TransitionFlipFromRight
TransitionCurlUp
TransitionCurlDown
TransitionCrossDissolve
TransitionFlipFromTop
TransitionFlipFromBottom

最新更新