![](/img/trans.png)
[英]how to display the value stored in array by using for loop in objective-c
[英]How to set order of display in Objective-C
我正在尝试使用CGContext路径绘制命令在UIImageView绘制和线条绘制之间进行混合,但是绘制顺序不正确。 我需要在图像的顶部绘制路径,但得到相反的结果。
我的实现方式:
现在,除了直接使用Context图像绘制功能之外(我想避免这种情况,因为我通过多个UIImageViews重用了我的图像资源),还有没有办法正确设置顺序(也许设置了标志)?
再次出现的问题是,线/路径是在UIImageViews之前绘制的(通过与父UIView的连接自动绘制),因此它们在图像/ UIImageViews上不可见。
谢谢
最顶层(在本例中为最后添加)子视图的内容将出现在所有其他视图的前面。 如果添加图像子视图并绘制到其父视图中,则该图像将出现在您在该父视图中所做的任何图形的前面。
仅在添加UIImageView之后,才应绘制添加到主视图的新视图。
如果需要,您也可以使用bringSubviewToFront:
和sendSubviewToBack:
手动重新排列视图。
(从您的帖子中,尚不清楚您正在绘制到哪个视图,但是我认为您正在绘制到可以解释此行为的主父视图。)
您可以尝试使用层通过Quartz Core实现此功能(请参见CALayer类文档)。 基本上,您可以具有图层层次结构。 您将每个UIView关联到一个不同的层,然后将这些层渲染在一起,从而提供一个单独的复合层。 此外,您还可以将变换和动画应用于图层。
您需要导入QuartzCore标头并执行类似的操作
#import <QuartzCore/QuartzCore.h>
UIView *mainView = [[UIView alloc] initWithFrame...
UIImageView *imageView = ...
CaLayer *mainViewLayer = mainView.layer;
[mainViewLayer addSubLayer: imageView.layer];
然后,当mainView出现在屏幕上时,所有子层将合并在一起并在屏幕上呈现。 发生的是每个视图都呈现其层,而mainViewLayer呈现为将两个层合并在一起。
让我知道这是否适合您。
您可以根据需要设置任意多个图层。 您可以使用CALayer方法创建任意层次结构
– addSublayer:
– removeFromSuperlayer
– insertSublayer:atIndex:
– insertSublayer:below:
– insertSublayer:above:
– replaceSublayer:with:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.