Когда я устанавливаю свойство transform моего CALayer с CATransform3DRotate, слой правильно поворачивается. Однако края слоя зазубрены и не сглажены. Я прочитал пару сообщений по теме:
iPhone: CALayer + вращается в 3D + антиалиасе?
iPhone - Jagged Edges при применении перспективы к CALayer
Я попытался включить их советы, установив следующие свойства на моем диагональном слое
CALayer* layer = myView.layer;
layer.shadowOpacity = 0.01;
layer.edgeAntialiasingMask = kCALayerTopEdge | kCALayerBottomEdge | kCALayerRightEdge | kCALayerLeftEdge;
layer.borderWidth = 1.0;
layer.borderColor = [UIColor clearColor].CGColor;
layer.backgroundColor = [UIColor greenColor].CGColor;
Я также переопределил drawLayer: inContext: метод моего диагонального слоя для обеспечения сглаживания:
-(void)drawLayer:(CALayer*)layer inContext:(CGContextRef)context
{
CGContextSetAllowsAntialiasing(context, true);
CGContextSetShouldAntialias(context, true);
CGContextSetFillColorWithColor(context, [UIColor greenColor].CGColor);
CGContextFillRect(context, self.bounds);
}
Что мне не хватает?