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