Iphone 将Subview带到CALayer的前面
我想知道是否有一种方法可以将图层置于其他图层的视图之上。类似于Iphone 将Subview带到CALayer的前面,iphone,calayer,Iphone,Calayer,我想知道是否有一种方法可以将图层置于其他图层的视图之上。类似于bringSubviewToFront的功能用于UIView类。我认为可以使用CALayer的zPosition属性来完成,但这意味着我必须检查所有层的zPosition,然后设置适当的值 提前谢谢 我相信代码(假定层是您的层) 将做你想做的事,尽管是以迂回的方式。此类别将实现你所谈论的 CALayer+加法器 #在项目中导入“CALayer+Additions.h”,您将发现一种新方法,moveToFront现在可用于CALayer
bringSubviewToFront
的功能用于UIView
类。我认为可以使用CALayer
的zPosition
属性来完成,但这意味着我必须检查所有层的zPosition
,然后设置适当的值
提前谢谢 我相信代码(假定层
是您的层
)
将做你想做的事,尽管是以迂回的方式。此类别将实现你所谈论的 CALayer+加法器
#在项目中导入“CALayer+Additions.h”
,您将发现一种新方法,moveToFront
现在可用于CALayer
实例。如果您使用CALayer
来提高性能,您还应该尝试只使用UIImageView
。在我的情况下,它被证明是几FPS快。(可能是从UIImage
到CGImage
转换,我需要在每个图像属性中执行该转换)甚至更容易。如果sublayerToBeMovedToFront
是您要移动的层,而它的superlayer
是它的superlayer,只需说:
[itsSuperLayer addSublayer:sublayerToBeMovedToFront];
addSublayer
调用同时将sublayerToBeMovedToFront
从其在同级列表中的任何位置取消锁定,并将其重新锁定为最后一个子层(即,最前面的位置,视觉上“在顶部”)。这与[aUIView addSubview:][/code>的行为完全相似,多亏了一点战利品。这就是我需要的如何交换两层的z索引?
#import <Foundation/Foundation.h>
#import <QuartzCore/CALayer.h>
@interface CALayer (Additions)
- (void)moveToFront;
@end
#import "CALayer+Additions.h"
@implementation CALayer (Additions)
- (void)moveToFront {
CALayer *superlayer = self.superlayer;
[self removeFromSuperlayer];
[superlayer addSublayer:self];
}
@end
[itsSuperLayer addSublayer:sublayerToBeMovedToFront];