я не получаю тень - PullRequest
1 голос
/ 03 марта 2012

Вот мой код:

CALayer *inLayer =[CALayer layer];
inLayer.backgroundColor = [UIColor redColor].CGColor;
inLayer.frame=CGRectMake(0,0,50, 50);
inLayer.position=CGPointMake(200, 200);
inLayer.cornerRadius=25;
inLayer.masksToBounds=YES;
inLayer.shadowColor=[UIColor blackColor ].CGColor;
inLayer.shadowOffset=CGSizeMake(5,10);
inLayer.shadowOpacity = 0.8;
inLayer.contents=(id)[UIImage imageNamed:@"Close.png"].CGImage;
inLayer.name=@"Close";
[self.view.layer addSublayer:inLayer];

У меня нет тени. что-то я там скучаю?

Ответы [ 2 ]

1 голос
/ 03 марта 2012

Тень рисуется вне границ слоя. Вы должны установить inLayer.masksToBounds = NO, чтобы увидеть тень.

Конечно, это не даст работать cornerRadius.

Вам необходимо использовать два слоя: внешний слой, который задает тень, и внутренний подслой, который устанавливает masksToBounds = YES и cornerRadius = 25.

0 голосов
/ 03 марта 2012

просто удалите эту строку:

inLayer.masksToBounds=YES;

ваш код работает нормально

...