У меня есть CALayer с подслоем CATextLayer. Когда я применяю преобразование или иным образом изменяю размер CALayer, мне нужно, чтобы CATextLayer изменял размеры в пределах его родителя. После изменения размера CATextLayer также должен обрезать свои символы без искажения пропорции символов. Этот эффект можно увидеть в Garageband для iPad, когда вы изменяете размер клипа в виде последовательности (экран ниже).
В моей попытке изменить размер CATextLayer в пределах границ его родительского слоя, я имею:
- установить для свойства truncationMode моего CATextLayer значение kCATruncationMiddle.
- установить свойство masksToBounds моего CALayer
- установить прямоугольник рамки по умолчанию для CATextLayer (в противном случае он не рисуется)
Вот что происходит:
- Когда я применяю анимированное преобразование к родительскому слою (посредством сенсорного события), символы CATextLayer растягиваются и искажаются.
- Когда анимационное преобразование заканчивается, родительский слой перерисовывается. CATextLayer не появляется за пределами родительского слоя, но его прямоугольный фрейм остается на том уровне, который я изначально установил.