【问题标题】:put subviews of a UIView in front of its CALayer?将 UIView 的子视图放在其 CALayer 前面?
【发布时间】:2011-07-01 17:42:21
【问题描述】:

这可能吗?基本上,我想给我的 UIView 一个子视图,并让该子视图位于视图层的前面(更具体地说,在所述层的边界前面)。

当然,我可以通过将视图的超级视图制作两个子视图来实现我想要的效果,一个在另一个之上。但如果可能的话,我宁愿避免这种情况。

【问题讨论】:

    标签: iphone uiview quartz-graphics calayer


    【解决方案1】:

    我自己找了一阵子;我不相信这是可能的。正如您所暗示的,我通过将子视图和父视图添加到同一个“容器”超级视图来解决了这个问题。然后只需对两个子视图进行排序,以便您的子视图位于另一个及其边框之上。

    【讨论】:

      【解决方案2】:

      我用一个 segue 动画解决了这个问题,我需要 sourceViewController 在destinationViewController 前面。我必须删除 sourceViewController 才能重新嵌套它。我的代码如下所示:

      - (void) perform {
      
          UIViewController *sourceViewController = (UIViewController *) self.sourceViewController;
          UIViewController *destinationViewController = (UIViewController *) self.destinationViewController;
          UIView *parent = sourceViewController.view.superview;
          [sourceViewController.view removeFromSuperview];
          [parent addSubview: destinationViewController.view];
          [parent addSubview:sourceViewController.view];
      
          // Perform animation stuffs...
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-30
        相关资源
        最近更新 更多