Ответ 1
Вы можете значительно повысить производительность тени CALayers, используя ее свойство shadowPath
- это позволяет рисовать тень, не переучитывая альфа-маску слоя. Для прямоугольного представления вы используете его следующим образом:
theView.layer.shadowPath = [UIBezierPath bezierPathWithRect:theView.bounds].CGPath;
или, если его углы округлены,
theView.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:theView.bounds cornerRadius:theView.layer.cornerRadius].CGPath;
Обратите внимание, что это тень вокруг границ представлений - если вам нужна более высокая производительность в тени на самом тексте, вам либо нужно использовать свойства text-shadow меток (которые жертвуют тонкостями теней CALayer, например, размыванием, для лучшей скорости рендеринга) или - гораздо более сложный вариант - создайте CGPathRef для использования в качестве слоев shadowPath
из самих текстовых символов.