【问题标题】:Hide uiview, but not it's subview?隐藏uiview,但不是子视图?
【发布时间】:2011-06-07 06:25:24
【问题描述】:

我有一个应用程序,我将 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];

【问题讨论】:

  • 为什么不能删除 ViewA 然后添加 ViewB?
  • 你会怎么做,并且还能得到动画?

标签: objective-c uiview hidden flip


【解决方案1】:

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

希望这会有所帮助。

【讨论】:

    【解决方案2】:

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

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

    UIViewAnimationOptionFlipFromRight 只是一种选择……阅读文档了解更多选择……

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-22
        • 2019-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-11
        相关资源
        最近更新 更多