ios – 创建自定义CALayer实现

ios – 创建自定义CALayer实现,第1张

概述我正在尝试学习核心动画以开发某个应用程序,但我需要继承CALayer类,但是我很难让图层自己绘制. 我需要自定义CALayer有一些额外的属性和处理自定义事件(触摸等)但从一开始我实现的基本CALayer不是绘制自己,谁能告诉我我做错了什么? 我有一个 幻方 #import "MagicSquare.h"@implementation MagicSquare-(id) initWithL 我正在尝试学习核心动画以开发某个应用程序,但我需要继承CALayer类,但是我很难让图层自己绘制.

我需要自定义CALayer有一些额外的属性和处理自定义事件(触摸等)但从一开始我实现的基本CALayer不是绘制自己,谁能告诉我我做错了什么?

我有一个
幻方

#import "MagicSquare.h"@implementation MagicSquare-(ID) initWithLayer:(ID)layer {    self = [super initWithLayer:layer];    self.bounds = CGRectMake(0,200,200);    self.position = CGPointMake(10,10);    self.cornerRadius = 100;    self.bordercolor = [UIcolor redcolor].CGcolor;    self.borderWIDth = 1.5;    return self;}- (voID)drawInContext:(CGContextRef)theContext{    NSLog(@"Drawing");    CGMutablePathref thePath = CGPathCreateMutable();    CGPathMovetoPoint(thePath,NulL,15.0f,15.f);    CGPathAddCurvetoPoint(thePath,15.f,250.0f,295.0f,15.0f);    CGContextBeginPath(theContext);    CGContextAddpath(theContext,thePath );    CGContextSetlinewidth(theContext,1.0);    CGContextSetstrokecolorWithcolor(theContext,[UIcolor redcolor].CGcolor);    CGContextstrokePath(theContext);    CFRelease(thePath);}

这就是我试图让它在主控制器上绘制的方式

@implementation BIDVIEwController- (voID)vIEwDIDLoad{    [super vIEwDIDLoad];    // Do any additional setup after loading the vIEw,typically from a nib.    MagicSquare *layer = [[MagicSquare alloc] initWithLayer:[CALayer layer]];    [self.vIEw.layer addSublayer:layer];}
解决方法 发现了问题.

我需要在图层上调用setNeedsdisplay,因为它不会自动绘制自己:

- (voID)vIEwDIDLoad{    [super vIEwDIDLoad];    // Do any additional setup after loading the vIEw,typically from a nib.    MagicSquare *layer = [[MagicSquare alloc] initWithLayer:[CALayer layer]];    [self.vIEw.layer addSublayer:layer];    [layer setNeedsdisplay];}
总结

以上是内存溢出为你收集整理的ios – 创建自定义CALayer实现全部内容,希望文章能够帮你解决ios – 创建自定义CALayer实现所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1053390.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存