afr*_*ick 16 nslayoutmanager uitextview ios textkit
我有一个UIImage包含多个图像帧和一个从动画GIF文件切片的持续时间.如果我将图像加载到UIWebView其中将按预期动画,但我想使用UITextView替代.显而易见的选择是使用带有自定义NSLayoutManger和许多自定义NSAttributedString属性的TextKit 来实现各种绘图效果.我有一个单一的UITextView,我想给一个NSAttributedString包含NSTextAttachments的所有图像我需要内联显示.它工作得很好,除了当我加载其中一个动画时UIImages,它们没有动画通过它们的帧.有关如何实现这一点的任何想法?我想出了一个理论选择:
UIImageView使用动画图像创建s,添加为子视图并调用startAnimating我还没有试过这个,但它相当hacky.我想知道是否有更好的选择.
总结:我想一个动画UIImage内UITextView通过NSTextAttachment内部NSAttributedString而不需要额外的UIImageView对象.你可以忽略这个以前用a做的事实UIWebView.UIImage具有用于设置动画帧的属性(images,duration),我目前已配置.如果我将它分配给UIImageView它动画,如果我将其设置为a NSTextAttachment,则不动画.
我将不胜感激任何反馈.谢谢!
我认为这种行为是因为UITextView不使用子视图显示附件UIImageView。NSTextAttachment当我观察添加或不添加 s 的视图层次结构时UITextView,我没有看到任何新视图(您可以使用 Xcode 中的“视图调试”或通过说来观察视图层次结构[[[UIApplication sharedApplication] keyWindow] recursiveDescription])。据推测,UITextView只是直接绘制其附件。
也就是说,我能想到的包含可动画附件的一种方法是UIImageView自己创建一个动画作为 的子视图UITextView,将其准确放置在NSLayoutManager放置 的位置NSTextAttachment,并在 UITextView 滚动时滚动它。NSTextAttachment您可以通过NSLayoutManager调用boundingRectForGlyphRange:inTextContainer:(可能在 中)获取 的矩形layoutManager:didCompleteLayoutForTextContainer:atEnd:。
| 归档时间: |
|
| 查看次数: |
1334 次 |
| 最近记录: |