您好每个人都有一个链接:link并且其中有一个示例代码,其中作者使用带有CAShapeLayer的CALayer。我想要使用此CALayer,就像它是一个uiimageView(可能是assign到uiimageview)能够移动它等...
答案 0 :(得分:0)
您无法更改现有UIView
的图层类型(意思是:您也无法更改UIImageView
的图层),但绘制到图层非常简单:您需要指定您CALayer
的代表,该代表需要实施drawLayer:inContext:。
另一种解决方案可能是创建UIView
子类并实现+layerClass
:
+ (Class)layerClass
{
return [CAShapeLayer class];
}
通过这种方式,您的视图将使用形状图层,您可以简单地使用通常的UIView
drawRect:
方法。然后,您可以通过(CAShapeLayer *)[self layer]
访问该图层以进行修改。不过,我没有尝试过这种方法。
编辑:解释如何完成第二个解决方案:
@interface MyView : UIView {
UIImage *image;
}
@property(retain) UIImage *image;
@end
@implementation MyView
@synthesize image;
+ (Class)layerClass
{
return [CAShapeLayer class];
}
- (void)dealloc
{
self.image = nil;
[super dealloc];
}
- (void)drawRect:(CGRect)rect
{
// Draw the image. You might need to play around with this,
// for example to draw the image as aspect fit or aspect fill.
[image drawInRect:rect];
}
@end