#iphone #objective-c #ios #core-animation #calayer
#iPhone #objective-c #iOS #ядро-анимация #calayer
Вопрос:
У меня есть CALayer с подуровнем CATextLayer. Когда я применяю преобразование или иным образом изменяю размер CALayer, мне нужно, чтобы CATextLayer изменял размер в пределах родительских границ. При изменении размера CATextLayer также необходимо усечь свои символы, не искажая пропорции символов. Этот эффект можно увидеть в Garageband для iPad при изменении размера клипа в режиме просмотра последовательности (экран ниже).
При моей попытке изменить размер CATextLayer в пределах границ его родительского слоя у меня:
- установите для свойства truncationMode моего CATextLayer значение kCATruncationMiddle.
- установите свойство masksToBounds для моего CALayer
- установите прямоугольник рамки по умолчанию для CATextLayer (в противном случае он не будет отображаться)
Вот что происходит:
- Когда я применяю анимированное преобразование к родительскому слою (через событие касания), символы CATextLayer растягиваются и искажаются.
- Когда анимированное преобразование заканчивается, родительский слой перерисовывается. CATextLayer не отображается за пределами родительского слоя, но его прямоугольная рамка остается такой, какой я ее изначально установил.
Ответ №1:
Похоже, что вы хотите сделать, это анимировать как CALayer
‘s, так и CATextLayer
свойство bounds
transform
‘s, а не их свойство. Их свойство.