gpt4 book ai didi

ios - 带有 TextKit 的 UITextView 中的动画 UIImage

转载 作者:IT王子 更新时间:2023-10-29 08:20:57 25 4
gpt4 key购买 nike

我有一个 UIImage,它包含多个图像帧和一个从动画 GIF 文件切片在一起的持续时间。如果我在 UIWebView 中加载图像,它将按预期进行动画处理,但我想改用 UITextView。显而易见的选择是使用带有自定义 NSLayoutManger 和许多自定义 NSAttributedString 属性的 TextKit 来实现各种绘图效果。我有一个 UITextView,我想为它提供一个 NSAttributedString,其中包含我需要内联显示的所有图像的 NSTextAttachment。它工作正常,除了当我加载这些动画 UIImages 之一时,它们不会通过它们的帧进行动画处理。关于如何实现这一目标的任何想法?我提出了一个理论上的选择:

  1. 为每个动画图像添加自定义属性
  2. 当布局管理器去绘制背景时,迭代这个属性来定位附件的位置。
  3. 回调到 TextView 以使用动画图像创建 UIImageView,添加为 subview ,并调用 startAnimating

我还没有尝试过这个,但它相当老套。我想知道是否有更好的选择。

总结:我想通过 NSAttributedString 内的 NSTextAttachmentUITextView 内的 UIImage 设置动画,无需额外的 UIImageView 对象的必要性。您可以忽略之前使用 UIWebView 完成此操作的事实。 UIImage 具有用于设置动画帧的属性(imagesduration),我目前已对其进行配置。如果我将它分配给 UIImageView,它会产生动画,如果我将它设置为 NSTextAttachment,则没有动画。

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

最佳答案

我认为这种行为是因为 UITextView不使用 UIImageView 显示附件 subview 。当我观察带有和不带有 NSTextAttachment 的 View 层次结构时s 添加到 UITextView ,我没有看到任何新 View (您可以使用 Xcode 中的 View 调试或通过说 [[[UIApplication sharedApplication] keyWindow] recursiveDescription] 来观察 View 层次结构)。据推测,UITextView直接绘制它的附件。

也就是说,我能想到的一种包含动画附件的方法是创建一个动画 UIImageView你自己作为 UITextView 的 subview , 把它放在 NSLayoutManager 的位置放置 NSTextAttachment ,并在 UITextView 滚动时滚动它。你可以得到 NSTextAttachment 的矩形来自 NSLayoutManager调用boundingRectForGlyphRange:inTextContainer: (可能在 layoutManager:didCompleteLayoutForTextContainer:atEnd: 中)。

关于ios - 带有 TextKit 的 UITextView 中的动画 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29949348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com