У меня есть UIImage, который содержит несколько кадров изображения и продолжительность, которая была нарезана вместе из анимированного GIF файла. Если я загружу изображение в UIWebView, он будет оживлять, как ожидалось, но вместо этого я хочу использовать UITextView. Очевидным выбором является использование TextKit с пользовательскими NSLayoutManger и многими пользовательскими атрибутами NSAttributedString для достижения различных эффектов рисования. У меня есть один UITextView, который я бы хотел предоставить NSAttributedString, который содержит NSTextAttachment для всех изображений, которые мне нужно отображать в строке. Он отлично работает, за исключением того, что когда я загружаю один из этих анимированных UIImages, они не оживляют свои фреймы. Любые мысли о том, как это сделать? Я придумал теоретический вариант:
- Для каждого анимированного изображения добавьте настраиваемый атрибут
- Когда менеджер компоновки отправляется рисовать фоны, повторите этот атрибут, чтобы найти позиции вложения.
- Обратный вызов текстового представления для создания
UIImageViewс анимированным изображением, добавьте как подвью и вызовитеstartAnimating
Мне еще нужно попробовать, но это довольно хаки. Мне интересно, есть ли лучший вариант.
Вкратце: я хочу анимировать UIImage внутри UITextView через NSTextAttachment внутри a NSAttributedString без необходимости дополнительных объектов UIImageView. Вы можете игнорировать тот факт, что это было сделано ранее с помощью UIWebView. UIImage имеет свойства (images, duration) для настройки анимированных кадров, которые я сейчас настроил. Если я присвою его UIImageView, он будет анимировать, если я установил его как NSTextAttachment, без анимации.
Буду признателен за любые отзывы. Спасибо!