美文网首页
UIButton上播放gif,点击按钮时动图重播的原因

UIButton上播放gif,点击按钮时动图重播的原因

作者: Wesson | 来源:发表于2023-08-18 21:35 被阅读0次

问题背景

在UIButton上播放gif动画。GIF可以正常播放,但是当点击按钮时,动图总是从头播。

代码

/// 生成GIF图片

- (UIImage *)generateGIFImage {

    NSMutableArray *images = [[NSMutableArray alloc] init];

    for(inti =1; i <= 4; ++i) {
        UIImage*image = [UIImageimageNamed:[NSStringstringWithFormat:@"%d.jpeg",i]];
        [images addObject:image];
    }
    UIImage *animatedImage = [UIImageanimatedImageWithImages:imagesduration:0.5];
    returnanimatedImage;

}

- (void)updateCell {
    UIImage *gif = [self generateGIFImage];
    UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, UIScreen.mainScreen.bounds.size.width, 100)];
    [btn setImage:gif forState:UIControlStateNormal];
    [self.contentView addSubview:btn];
}

问题分析

当点击UIButton时,按钮的状态会发生改变,从默认状态变为高亮状态,这会导致UIButton重新配置其imageView,从而导致GIF重新播放。

解决方案

将播放GIF的UIImageView绘制在UIButton上,而不是用UIButton的imageVIew来播放GIF。 同时将这个UIImageView的userInteractionEnabled 设置为TRUE,避免按钮点击失灵。

相关文章

网友评论

      本文标题:UIButton上播放gif,点击按钮时动图重播的原因

      本文链接:https://www.haomeiwen.com/subject/xomdmdtx.html