2013-09-09 2 views
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]; это works.Confused

+0

ли вы читать документы на CALayer и CAShapeLayer, или вы просто blrrrrpjstfrsts. –

ответ

4

добавить путь к нему, как

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

Фигурный слой нуждается в форму ...


Я положил это в моем контроллере обзора и он отлично работает:

- (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]; 
} 

enter image description here

Если вы измените путь

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

это будет приводить к

enter image description here

+0

спасибо, если я попробовал 'CALayer * shapeLayer = [CALayer layer];' it works.Why CALayer не нужен путь. – tranvutuan

+2

, поскольку он определяет форму – vikingosegundo

Смежные вопросы