代码之家  ›  专栏  ›  技术社区  ›  Adi

如何在Objective-C中设置显示顺序

  •  1
  • Adi  · 技术社区  · 17 年前

    我试图使用CGContext路径绘制命令在UIImageView绘制和线条绘制之间进行混合,但绘制顺序不正确。 我需要在图像上绘制路径,但得到的是相反的路径。

    1. 在UIImageView中设置UIImage,并将UIImageView添加为主视图的子视图。

    问题再次在于,线条/路径是在UIImageViews之前绘制的(通过与父UIView的连接自动绘制),因此它们在图像/UIImageViews上不可见。

    2 回复  |  直到 17 年前
        1
  •  3
  •   PCheese    17 年前

    您需要导入QuartzCore标头,并执行以下操作

    #import <QuartzCore/QuartzCore.h>
    UIView *mainView = [[UIView alloc] initWithFrame...
    UIImageView *imageView = ...
    
    CaLayer *mainViewLayer = mainView.layer;
    [mainViewLayer addSubLayer: imageView.layer];
    

    然后,当主视图出现在屏幕上时,所有子层都会合并在一起并在屏幕上渲染。发生的情况是,每个视图渲染其层,而mainViewLayer渲染时将两个层合并在一起。

    如果这对你有效,请告诉我。

    你可以拥有任意数量的图层。您可以使用CALayer方法创建任意层次结构

    – addSublayer: 
    – removeFromSuperlayer
    – insertSublayer:atIndex:
    – insertSublayer:below:
    – insertSublayer:above:
    – replaceSublayer:with:
    
        2
  •  3
  •   Massimo Cafaro    17 年前

    只有在添加UIImageView后,您才能绘制到添加到主视图的新视图中。

    你也可以使用 bringSubviewToFront: 和 sendSubviewToBack: