当前位置: 首页 > 面试题库 >

如何在Swift中将gif显示到UIImageView中?

莘光华
2023-03-14
问题内容

我想在UIImageView中使用gif,但不能。我的代码是:

- (void)viewDidLoad {
    [super viewDidLoad];

    NSURL *url = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"gif"];
    UIImage *testImage = [UIImage animatedImageWithAnimatedGIFData:[NSData dataWithContentsOfURL:url]];
    self.dataImageView.animationImages = testImage.images;
    self.dataImageView.animationDuration = testImage.duration;
    self.dataImageView.animationRepeatCount = 1;
    self.dataImageView.image = testImage.images.lastObject;
    [self.dataImageView startAnimating];
}

迅速:

var url : NSURL = NSBundle.mainBundle().URLForResource("MAES", withExtension: "gif")

在客观CI中有animationImageWithAnimatedGIFData,但是很快我不知道怎么称呼它,或者不存在。

谢谢!


问题答案:

我假设您使用的是https://github.com/mayoff/uiimage-from-animated-
gif
+UIImage animatedImageWithAnimatedGIFData:源代码在Objective-C中。

您首先需要将Objective-C标头导入Swift。 将Swift与Cocoa和Objective-
C结合使用

说明了如何做到这一点:

要在与Swift代码相同的框架目标中导入一组Objective-C文件,您需要将这些文件导入框架的Objective-C伞形标头中。

从同一框架将Objective-C代码导入Swift

  1. 在“打包设置”下的“构建设置”下,确保该框架目标的“定义模块”设置被设置为“是”。
  2. 在您的伞形头文件中,导入要公开给Swift的每个Objective-C头。例如:

#import "UIImage+animatedGIF.h"

然后,您可以testImage按照以下步骤进行设置:

var testImage = UIImage.animatedImageWithAnimatedGIFData(
    NSData.dataWithContentsOfURL(url))
self.dataImageView.animationImages = testImage.images
self.dataImageView.animationDuration = testImage.duration
self.dataImageView.animationRepeatCount = 1
self.dataImageView.image = testImage.images.lastObject
self.dataImageView.startAnimating()


 类似资料:
  • 在你把我和另一个类似的问题联系起来之前,比如这个或那个。我要说的是,我完全按照答案所说的做了,但我的gif不会像它应该做的那样动画化(尽管它是显示出来的)。 下面是我在一个函数中所做的操作,该函数通过主应用程序函数堆栈显示。导航容器和堆栈中的屏幕。导航器。(我使用React导航在屏幕上移动,这里的上下文是按下一个按钮,它显示DetailsScreen函数的内容) 这将显示我的gif的第一个静态图像

  • 它与文件一起工作很好,但是当我使用文件时,它是空的。我在某处读到了将重命名为,但它只显示一帧动画gif而没有动画。有什么想法吗?

  • 问题内容: 您好,我正在使用Swing在Java 1.6上编写GUI应用程序。 我有一个弹出屏幕,该窗口在加载Swing gui时以及稍后会显示gif动画。 我的弹出屏幕是一个JDialog。动画应显示在通过以下方式添加到Jdialog的JLabel上: 现在的事情是,动画仅在gui加载后显示。我相信在GUI加载时(这是我的应用程序中的繁重操作),EDT太忙了,无法运行动画。 现在的问题是,将GU

  • 问题内容: 触摸a后,您将如何检测并执行操作?这是我到目前为止的代码: 问题答案: 您可以使用Interface Builder 放入内部,也可以放入代码(根据需要),我更喜欢第一个。然后,你可以把一个和处理你里面的水龙头,别忘了设置,以在Interface Builder或代码。 希望对您有所帮助。

  • 我第一次使用Glide在ImageView中显示GIF。我已经按照几个站点的方式对其进行了编码。但它不起作用。我已经给出了以下所有代码:(如果我弄错了什么,请告诉我) 项目级build.gradle 应用程序级构建。gradle文件: activity_main.xml 活动Java代码: 单击“提交”按钮后,我没有看到GIF图像。

  • 问题内容: 我正在尝试在用户点击操作时将其分配给操作。 我知道如何为a创建动作,但是如何模仿a的相同行为却使用a ? 问题答案: 您需要一个。要进行设置,请使用以下命令: (您也可以使用,并为其分配图片,不添加文字,而只需连接即可)