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

时间:2015-01-28 18:47:58

标签: ios objective-c uiview

我有一个名为UIView的{​​{1}}用于某些主要选项,另一个视图带有一些名为View1的额外选项。

我想将View2隐藏在View2后面。然后,当我想展示它时,View1应该来自View2。我在线尝试了不同的代码,但没有得到任何正确的解决方案。

2 个答案:

答案 0 :(得分:4)

我的理解是你有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];
}];

答案 1 :(得分:0)

这里不是很多信息。最简单的解决方案是将View2放在前面。 theSuperView这里是包含View1 and View2`

的视图
theSuperView.bringSubviewToFront(View2)

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

View1.hidden = true

虽然为用户提供了更好的体验。对于这种类型的实例,使用动画过渡到视图会更好。

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

您可以在此处添加options参数中的大量内容,包括:

TransitionNone
TransitionFlipFromLeft
TransitionFlipFromRight
TransitionCurlUp
TransitionCurlDown
TransitionCrossDissolve
TransitionFlipFromTop
TransitionFlipFromBottom