1

我正在CAShapeLayer使用 CAShapeLayer 创建一个图层,如下所示:

CAShapeLayer *shapeLayer = [CAShapeLayer layer];
shapeLayer.frame = CGRectMake(150, 50, 200, 200);
shapeLayer.fillColor = [UIColor whiteColor].CGColor;
shapeLayer.strokeColor = [UIColor orangeColor].CGColor;
[self.view.layer addSublayer:shapeLayer];

但是,当我执行代码时,我shapeLayer在模拟器/设备中看不到我的。
我在这里缺少什么。

PS:如果我使用CALayer *shapeLayer = [CALayer layer];它的作品。困惑

4

1 回答 1

5

为其添加路径,例如

 shapeLayer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 2.0*radius, 2.0*radius) 
                                              cornerRadius:radius].CGPath;

成型层需要形状......</p>


我把它放在我的视图控制器中,它工作正常:

- (void)viewDidLoad
{
    [super viewDidLoad];

    CAShapeLayer *shapeLayer = [CAShapeLayer layer];
    shapeLayer.frame = CGRectMake(150, 50, 200, 200);
    shapeLayer.fillColor = [UIColor whiteColor].CGColor;
    shapeLayer.strokeColor = [UIColor orangeColor].CGColor;

    NSUInteger radius = 90;
    shapeLayer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 2.0*radius, 2.0*radius)
                                                 cornerRadius:radius].CGPath;
    [self.view.layer addSublayer:shapeLayer];   
}

在此处输入图像描述

如果你改变路径

shapeLayer.path = [UIBezierPath bezierPathWithRect:shapeLayer.bounds].CGPath;

它会导致

在此处输入图像描述

于 2013-09-09T20:24:10.373 回答