将UIView的子视图放在CALayer前面?

时间:2011-07-01 17:42:21

标签: iphone uiview quartz-graphics calayer

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

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

2 个答案:

答案 0 :(得分:4)

我自己找了一会儿;我不相信这是可能的。我解决了这个问题,将子视图和父级添加到同一个“容器”超级视图中。然后只需要对两个子视图进行排序,以便您的子视图位于另一个及其边界之上。

答案 1 :(得分:1)

我用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...

}