iPhone的UIView定位:“ Z索引”有什么概念吗?

问题描述

| 我知道是否要向UIImageView添加黑色背景,我可以创建一个比其中包含的UIView小一些的UIImageView。如果执行此操作,则UIImageView会位于黑色背景的顶部。 只是假设,假设我要在UIImageView的TOP上放置黑色背景UIView(以便覆盖图像),我该怎么做?有z索引的概念吗? 这是将黑色背景添加到图像的代码
UIView *blackBG = [[UIView alloc] initWithFrame:CGRectMake(0,100,100)];

blackBG.backgroundColor = [UIColor blackColor];

UIImageView *myPicture = [[UIImageView alloc] initWithImage:
                          [UIImage imageNamed: @\"myPicture.jpg\"]];

int borderWidth = 10;

myPicture.frame = CGRectMake(borderWidth,borderWidth,blackBG.frame.size.width-borderWidth*2,blackBG.frame.size.height-borderWidth*2)];

[blackBG addSubview: myPicture];
    

解决方法

        子视图是分层的,您可以通过以下方式将子视图发送到背面:
[myView sendSubviewToBack:mySubView];
或BringSubviewToFront等。 您也可以执行以下操作之一...
[myView insertSubview:mySubview atIndex:0]; //Places it at the bottom

[myView insertSubview:mySubview belowSubview:anotherSubview]; //Places it below anotherSubview
但是,将视图作为子视图添加到另一个视图后,父视图即成为堆栈的底部。您可以使用CALayer z订单,但是绕过了视图和子视图的一般方法。 为bg视图和imageview创建一个作为父视图的视图,然后可以按自己的喜好对其进行排序。 更新:我有一个UIView + Layout类别,它具有不错的
[subview sendToBack];
[subview bringToFront];
,您可能会觉得有用....这里的文章     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...