目标c - iPhone的UIView定位:"Z-Index"的任何概念?



我知道如果我想向UIImageView添加黑色背景,我可以创建一个比它所包含的UIView小一点的UIImageView。如果我这样做,UIImageView将位于黑色背景的顶部。

只是假设一下,假设我想要黑色背景的UIView在UIImageView的顶部(这样它就覆盖了图像),我该怎么做?有z索引的概念吗?

这是我为图像添加黑色背景的代码:

UIView *blackBG = [[UIView alloc] initWithFrame:CGRectMake(0,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];

或将SubviewToFront等

你也可以做其中一个。。。

[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];,你可能会发现它们很有用。。。。文章在这里

相关内容

最新更新