Неправильное отображение тени в CATiledLayer - PullRequest
0 голосов
/ 08 декабря 2011

У меня есть вид, который рендерит PDF в CATiledLayer.Это работает хорошо.

Теперь я пытаюсь добавить тень к виду, поэтому я сделал следующее:

    tiledLayer.masksToBounds = NO;
    tiledLayer.shadowOffset = CGSizeMake(5, 5);
    tiledLayer.shadowRadius = 5;
    tiledLayer.shadowOpacity = 0.5;
    tiledLayer.shadowPath = [UIBezierPath bezierPathWithRect:self.bounds].CGPath; 

Но то, что я вижу, отображается неправильно.Похоже, что происходит то, что для каждой плитки рисуется тень.Как только все плитки нарисованы, конечный продукт выглядит правильно и имеет тень в нужном месте, но промежуточный рендеринг отвлекает.

Как я могу использовать тень с CATiledLayer?

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

Вы должны обернуть ваш CATiledLayer в слой контейнера с примененными к нему атрибутами тени.Судя по вызову self.bounds, вы, возможно, уже внедрили CATiledLayer в слой представления, и в этом случае (если вам не нужно masksToBounds) вы можете просто применить атрибуты тени к этому слою напрямую.

0 голосов
/ 08 декабря 2011

Совершенно очевидно, что для каждой плитки рисуется тень, именно это вы и сказали. Я предполагаю, что ваши плитки загружаются в каком-то родительском представлении, которое их содержит (обычно UIScrollView). Вы должны установить свою тень на том, что содержит представление.

...