我创建了一个像这样的CALayer子类:
#import <QuartzCore/QuartzCore.h>
@interface SHBaseLayer : CALayer
@end
和实施:
#import "SHBaseLayer.h"
@implementation SHBaseLayer
- (void)drawInContext:(CGContextRef)theContext
{
CGContextSetStrokeColorWithColor(theContext, [UIColor blueColor].CGColor);
CGMutablePathRef thePath = CGPathCreateMutable();
CGPathMoveToPoint(thePath,NULL,15.0f,15.f);
CGPathAddCurveToPoint(thePath,
NULL,
15.f,250.0f,
295.0f,250.0f,
295.0f,15.0f);
CGContextBeginPath(theContext);
CGContextAddPath(theContext, thePath);
CGContextSetLineWidth(theContext, 5);
CGContextDrawPath(theContext, kCGPathStroke);
}
@end
我正在视图控制器视图的图层中添加此图层并调用setNeedsDisplay
,但在运行应用时没有显示任何内容。
这是ViewController的viewDidLoad
。
- (void)viewDidLoad
{
[super viewDidLoad];
SHBaseLayer *l = [SHBaseLayer layer];
[self.view.layer addSublayer:l];
[l setNeedsDisplay];
}
我在这里做错了什么?
答案 0 :(得分:2)
您需要设置图层的框架。默认框架为{0,0,0,0},永远不会起作用。