我想把一个视图移到另一个视图的上方,我怎么知道视图的z索引,以及如何移到顶部?


当前回答

[parentView bringSubviewToFront:view] ;

其他回答

我们可以在ios中使用zPosition

如果我们有一个名为salonDetailView的视图 例如:@IBOutlet弱var salonDetailView: UIView!

以我为例,请看图片

并有GMSMapView的UIView @IBOutlet weak var mapViewUI: GMSMapView!

在mapViewUI上显示View salonDetailView

使用zPosition如下所示

salonDetailView.layer.zPosition = 1

如果你想通过XCode的Interface Builder来实现,你可以使用Editor->Arrangement下的菜单选项。在那里你会发现“发送到前面”,“发送到后面”,等等。

如果你正在使用cocos2d,你可能会看到[parentView bringSubviewToFront:view]的问题,至少它不适合我。我没有把我想要的视图放到前面,而是把其他视图放到后面,这样就成功了。

[[[CCDirector sharedDirector] view] sendSubviewToBack:((UIButton *) button)]; 

你可以使用视图层的zPosition属性(它是一个CALayer对象)来改变视图的z-index。

theView.layer.zPosition = 1;

正如维克多·诺德林(Viktor Nordling)补充的那样,“大价值是最重要的。你可以使用任何你想要的值,包括负值。”缺省值为0。

您需要导入QuartzCore框架来访问该层。只需在实现文件的顶部添加这行代码。

#import "QuartzCore/QuartzCore.h"
[parentView bringSubviewToFront:view] ;