Вопросы о clipToBounds: UIView Vs CALayer - PullRequest
1 голос
/ 01 марта 2011

У меня есть класс, который принимает NSString в качестве параметра, использует Core Text для получения размера текста, извлекает каждую строку и отрисовывает текстовую строку с различными смещениями x, чтобы получить эффект перекоса.

Я также применяю тень, когда Core Graphics рисует строки текста, однако эта тень обрезается представлениями frame и clipToBounds, но это не разрешает.

Вопрос 1. Я понимаю, что clipsToBounds = NO будет только повлиять на подпредставления.Означает ли это UIViews, или это относится также к sub CALayer s?

Вопрос 2. Когда я рисую CTLines, могу ли я использовать другой контекст UIView или CALayer длясделать так, чтобы я мог правильно использовать clipsToBounds

1 Ответ

3 голосов
/ 02 апреля 2011
  1. clipsToBounds применяется только к подуровням, а не к содержимому слоев, да.

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

Например, если вы начинаете с прямоугольника (100,100) и имеете тень размером 1 пиксель со смещением (0,0):

layer.bounds = CGRectMake(-1, -1, 102, 102).
...