隐藏uiview,但不是它的子视图?

时间:2011-01-11 15:50:59

标签: objective-c uiview hidden flip

我有一个应用程序,我将ViewB作为子视图添加到ViewA ...但ViewB的背景是clearColor,这意味着我可以通过ViewB看到ViewA!如果我将viewA设置为隐藏,ViewB也会消失!

我在视图之间进行“翻转”,所以我不能只删除ViewA然后添加ViewB: - /

- 任何人都知道我能做些什么?


这是我的代码:

[UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1.0];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight
                           forView:mainTableView
                             cache:YES];
    [mainTableView addSubview:subTableView];
    [UIView commitAnimations];

3 个答案:

答案 0 :(得分:1)

“我正在视图之间进行”翻转“,所以我不能只删除ViewA然后添加ViewB: - /” - 实际上是的,你可以。作为第一步,您应该将ViewA添加到父视图。稍后,当您想要翻转时,删除ViewA,并将ViewB添加到父视图,然后在父视图上执行翻转过渡。

希望这有帮助。

答案 1 :(得分:1)

我建议您不要将后视图作为子ViewB添加为ViewA的子视图。最好的解决方案是保持它们分开...前面提到的方法(transitionFromView:toView:duration:options:completion :)是正确使用的方法...只是确保你没有一个作为另一个的子视图...相反,如果ViewA将成为“后视图”,那么就这样做......

[UIView transitionFromView:viewB toView:viewA options:UIViewAnimationOptionTransitionFlipFromRight completion:NULL];

UIViewAnimationOptionFlipFromRight只是一个选项...阅读更多选项的文档....

答案 2 :(得分:0)

查看setAnimationTransition的帮助:forView:cache: - 听起来你想在转换期间更改视图的外观,从一个视图翻转到另一个视图,这两个视图在动画期间都可见?为了做到这一点,文档建议使用容器视图。文档还建议在iOS 4.0及更高版本中使用基于块的动画。

尝试使用transitionFromView:toView:duration:options:completion: