На всякий случай, если кто-то заинтересован в моем решении:
По сути, можно создавать текст с обводкой (рамкой) без непосредственного использования CoreText.Строковое свойство CATextLayer принимает NSAttributedStrings.Следовательно, это было бы так же просто, как присвоение NSAttributedString с цветом обводки и шириной обводки в его атрибутах.
К сожалению, мне нужно было анимировать размер шрифта.Свойство string является анимируемым, но только если это строка NSString.Поэтому я решил создать подкласс CATextLayer.После долгих попыток я понял, что свойства строки и содержимого CATextLayer являются взаимоисключающими, что означает, что отображается либо строка, либо содержимое.Я не мог понять, как сделать рисунок строки самостоятельно.Методы display и drawInContext: ctx вызываются только при обновлении содержимого, но я не знал, что мне придется вызывать для обновления строки.
Поэтому я решил написать свой собственный класс CATextLayer, подкласс CALayer.Я создал анимируемое свойство с именем fontSize.Когда этот анимирован, вызывается метод drawInContext: ctx.В методе drawInContext: ctx я создаю новую строку с CoreText и соответствующим образом обновляю ее размер, используя свойство fontSize.