Я бы хотел, чтобы после поворота тень применялась правильно. Это мой код:
myButton.transform = CGAffineTransformMakeRotation(M_PI / 180.0 * 90.0);
myButton.layer.shadowOffset = CGSizeMake(12.0, 12.0);
myButton.layer.shadowRadius = 2.0;
myButton.layer.shadowOpacity = 0.8;
myButton.layer.shadowColor = [UIColor blackColor].CGColor;
Без поворота тень выглядит нормально:
Но после поворота на 90 ° тень также поворачивается:
Могу ли я что-нибудь с этим сделать, не отменяя метод drawRect, и рисование низкого уровня? Или, может быть, какой-то метод, который исправляет shadowOffset с заданным углом поворота? Легко вручную скорректировать смещение на 90 °, так что это не вариант;)
Это должно выглядеть так:
Заранее спасибо!
С помощью Бартоша Цехановски это работает!
float angleInRadians = M_PI / 180.0 * -35.0;
myButton.transform = CGAffineTransformMakeRotation(angleInRadians);
myButton.layer.shadowOffset = [self correctedShadowOffsetForRotatedViewWithAngle:(angleInRadians)
andInitialShadowOffset:CGSizeMake(12.0, 12.0)];
myButton.layer.shadowRadius = 2.0;
myButton.layer.shadowOpacity = 0.8;
myButton.layer.shadowColor = [UIColor blackColor].CGColor;
Это работает! приводит к:
вместо