隐藏一个 UIView behind/below 其他 UIView 并从该视图显示
Hide a UIView behind/below other UIView and show from that view
我有一个名为 View1
的 UIView
用于一些主要选项,另一个视图有一些名为 View2
.
的额外选项
我想把View2
藏在View1
后面。然后,当我要显示它时,View2
应该从View1
后面来。我在网上尝试了不同的代码,但没有得到任何合适的解决方案。
这里要介绍的信息不多。最简单的解决方案是将 View2
放在最前面。 theSuperView
这里是包含 View1
和 View2
的视图
theSuperView.bringSubviewToFront(View2)
另一个简单的解决方案是隐藏 View1
View1.hidden = true
不过,用户体验会更好。对于这种类型的实例,使用动画转换到视图会好得多。
Swift 2
UIView.transitionFromView(View1, toView: View2, duration: .3, options: UIViewAnimationOptions.TransitionFlipFromLeft, completion: nil)
Swift 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
我的理解是你有 2 个子视图,一个你想在另一个后面设置动画。我将声明主视图为 superView,顶部子视图为 view1,动画下方视图为 view2。假设已经添加了 view1。
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];
}];
我有一个名为 View1
的 UIView
用于一些主要选项,另一个视图有一些名为 View2
.
我想把View2
藏在View1
后面。然后,当我要显示它时,View2
应该从View1
后面来。我在网上尝试了不同的代码,但没有得到任何合适的解决方案。
这里要介绍的信息不多。最简单的解决方案是将 View2
放在最前面。 theSuperView
这里是包含 View1
和 View2
theSuperView.bringSubviewToFront(View2)
另一个简单的解决方案是隐藏 View1
View1.hidden = true
不过,用户体验会更好。对于这种类型的实例,使用动画转换到视图会好得多。
Swift 2
UIView.transitionFromView(View1, toView: View2, duration: .3, options: UIViewAnimationOptions.TransitionFlipFromLeft, completion: nil)
Swift 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
我的理解是你有 2 个子视图,一个你想在另一个后面设置动画。我将声明主视图为 superView,顶部子视图为 view1,动画下方视图为 view2。假设已经添加了 view1。
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];
}];