iPhone - Зубчатые Края при применении перспективы к CALayer

У меня есть CALayer, что я применяю перспективу к использованию a CGTransform3D и определение m14 свойство. Когда перспектива применяется, слой неровно оборвал края. Я услышал, что люди упоминают, что добавление прозрачной границы на 1 пкс вокруг слоя поможет с этим. Я не знаю, как сделать это. Я попытался использовать border и borderWidth свойства CALayer, но зубчатых краев все еще там. Я также пытался уменьшить реагирование, которое оттянуто 1 пкс на всех сторонах, но оно не помогает также.

Любая справка была бы большой!Спасибо!

6
задан Brian 23 April 2010 в 20:25
поделиться

1 ответ

Под «Я слышал, как люди упоминали», я полагаю, вы имеете в виду обсуждение этого вопроса . Было предложено отрисовать контент в вашем CALayer так, чтобы он имел прозрачную границу размером в один пиксель за пределами основного контента, используя код

CGContextSetAllowsAntialiasing(theContext, true);
CGContextSetShouldAntialias(theContext, true);

в вашем чертеже Quartz для этого слоя.

В CALayer есть также свойство edgeAntialiasingMask , но я не заметил никакого влияния при использовании следующего кода:

layer.edgeAntialiasingMask = kCALayerLeftEdge | kCALayerRightEdge | kCALayerBottomEdge | kCALayerTopEdge;

на сглаживание краев преобразованных слоев. См. Также этот вопрос для обсуждения этого, а также того, как они решили свою проблему, используя однопиксельные прозрачные границы вокруг своих изображений.

3
ответ дан 8 December 2019 в 15:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: