我使用SD_WebImage来显示我的gif,就像这样:
码
UIImage *gifImg = [UIImage sd_animatedGIFWithData:[NSData dataWithContentsOfFile:imagePath]];
NSTextAttachment *atc = [[NSTextAttachment alloc] initWithData:nil ofType:nil];
atc.image = image;
NSAttributedString *textAttachmentString = [NSAttributedString attributedStringWithAttachment:atc];
[emojiText replaceCharactersInRange:range withAttributedString:textAttachmentString];
MyTextView.attributedString = emojiText;
结果: 我的UITextView上的图像显示成功,但它没有播放,只是静态
为什么?如何让这个gif-image生效?
(顺便说一句:由于某些原因我不能在我的项目中使用YYkit,所以我必须使用UITextView或UILabel) 我知道imageView可以播放带有图像数组的动画。但我没有找到在textView中显示imageView的正确方法。
帮帮我〜
答案 0 :(得分:-1)
最后我解决了这个问题
我使用空附件替换我的gif-image_script
然后我找到这个附件,创建一个yyanimatedimage并将其放在我的textview
上[mAttributedString enumerateAttribute:NSAttachmentAttributeName inRange:NSMakeRange(0, mAttributedString.length) options:0 usingBlock:^(id _Nullable value, NSRange range, BOOL * _Nonnull stop) {
if ([value isKindOfClass:[NSTextAttachment class]]) {
NSTextAttachment * attachment = value;
if ([attachment.tagExtra isEqualToString:@"gif"]) {
label.selectedRange = range;
CGRect rect = [label firstRectForRange:label.selectedTextRange];
rect.origin.y += (rect.size.height - 20);
rect.size = CGSizeMake(20, 20);
YYAnimatedImageView *imageView = [[YYAnimatedImageView alloc] initWithFrame:rect];
[label addSubview:imageView];
imageView.image = [YYImage imageNamed:attachment.tagName];
}
}
}];
label.selectedRange = NSMakeRange(0, 0);