【发布时间】:2011-07-01 17:42:21
【问题描述】:
这可能吗?基本上,我想给我的 UIView 一个子视图,并让该子视图位于视图层的前面(更具体地说,在所述层的边界前面)。
当然,我可以通过将视图的超级视图制作两个子视图来实现我想要的效果,一个在另一个之上。但如果可能的话,我宁愿避免这种情况。
【问题讨论】:
标签: iphone uiview quartz-graphics calayer
这可能吗?基本上,我想给我的 UIView 一个子视图,并让该子视图位于视图层的前面(更具体地说,在所述层的边界前面)。
当然,我可以通过将视图的超级视图制作两个子视图来实现我想要的效果,一个在另一个之上。但如果可能的话,我宁愿避免这种情况。
【问题讨论】:
标签: iphone uiview quartz-graphics calayer
我自己找了一阵子;我不相信这是可能的。正如您所暗示的,我通过将子视图和父视图添加到同一个“容器”超级视图来解决了这个问题。然后只需对两个子视图进行排序,以便您的子视图位于另一个及其边框之上。
【讨论】:
我用一个 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...
}
【讨论】: