Почему два угла округляются медленнее, чем все углы?
Изменить: Язык обновлен для улучшения читабельности.
Я сделал изображение с 2 закругленными углами, как это:
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.photoImageView.bounds byRoundingCorners:UIRectCornerBottomLeft|UIRectCornerBottomRight cornerRadii:CGSizeMake(10, 10)];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.path = maskPath.CGPath;
self.photoImageView.layer.mask = maskLayer;
Но это медленнее, чем делать все углы, используя этот код.
self.photoImageView.layer.cornerRadius = 10;
Кто-нибудь знает, что, почему и как я могу улучшить свой код "2 угла", пожалуйста?
1 ответ
Ваш код добавляет еще один этап к чертежу. Обычно фон рисуется (с указанным cornerRadius) непосредственно к цели, но с заданной маской он рисуется на временной поверхности, а затем копируется в цель с помощью маски.
В стандартном объекте CALayer отсутствует какая-либо встроенная функциональность для округления только некоторых фоновых углов.
Я действительно задаюсь вопросом, насколько медленный "медленный" действительно; это преждевременная оптимизация?