首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动画UIImage在UITextView中与TextKit

动画UIImage在UITextView中与TextKit
EN

Stack Overflow用户
提问于 2015-04-29 16:21:59
回答 1查看 1.7K关注 0票数 17

我有一个UIImage,它包含多个图像帧和一个从动画GIF文件中分割到一起的持续时间。如果我将图像加载到UIWebView中,它将像预期的那样显示动画,但我想使用UITextView代替。显而易见的选择是将TextKit与自定义NSLayoutManger和许多自定义NSAttributedString属性一起使用,以实现各种绘图效果。我有一个UITextView,我想给出一个NSAttributedString,其中包含所有需要内联显示的图像的NSTextAttachment。它运行良好,除非当我加载这些动画UIImages之一,他们不通过他们的帧动画。对如何做到这一点有什么想法吗?我想出了一个理论上的选择:

  1. 为每个动画图像添加一个自定义属性
  2. 当布局管理器开始绘制背景时,迭代此属性以定位附件的位置。
  3. 回调文本视图,创建带有动画图像的UIImageView,添加为子视图,并调用startAnimating

我还没试过这个,但还挺烦人的。我想知道是否有更好的选择。

总之:我想通过UIImageNSAttributedString中通过NSTextAttachment动画一个UIImageView,而不需要额外的UIImageView对象。您可以忽略这样一个事实,即这以前是用UIWebView完成的。UIImage具有设置动画帧的属性(imagesduration),我目前已经配置了这些属性。如果我将它分配给一个UIImageView,它会有动画,如果我将它设置为NSTextAttachment,则没有动画。

如有任何反馈,我将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-05-07 09:40:45

我认为这种行为是因为UITextView没有使用UIImageView子视图显示附件。当我观察视图层次结构时,无论是否将NSTextAttachment添加到UITextView中,我都看不到任何新的视图(您可以使用Xcode中的视图调试或通过表示[[[UIApplication sharedApplication] keyWindow] recursiveDescription]来观察视图层次结构)。想必,UITextView只是直接绘制它的附件。

尽管如此,我认为包含一个可动画附件的一种方法是自己创建一个动画UIImageView作为UITextView的一个子视图,将它准确地放置在NSLayoutManager放置NSTextAttachment的位置,并在UITextView滚动时滚动它。您可以通过调用NSTextAttachment (可能在layoutManager:didCompleteLayoutForTextContainer:atEnd:中)从NSLayoutManager中获取boundingRectForGlyphRange:inTextContainer:的矩形。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29949348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档