我应该在iOS上使用GIF文件还是动画代码?

4

我打算在iOS上制作一个闪屏,其中包含一个人和一个椅子对象。每个对象都有分离的方面,如手、头、身体和脚,这些方面共同动画。我想知道哪种方法更好?是导入GIF文件还是编写CALayer对象然后添加动画?


这取决于你愿意为完成任务而牺牲哪种资源:_时间_还是_内存_。 - holex
2个回答

6

启动画面(闪屏)不能使用GIF文件或任何用于动画的代码,您只能使用静态图像,即PNG或JPG(如果启动画面是故事板)。

因此,如果您希望应用程序启动时有一些动画效果,则应在第一个视图控制器中进行管理。

您可以使用图像集来为imageview添加动画效果,例如:

UIImageView* myImageViewForAnimation = [[UIImageView alloc] initWithFrame:self.view.bounds];
myImageViewForAnimation.animationImages = [NSArray arrayWithObjects:
                                     [UIImage imageNamed:@"image1"],
                                     [UIImage imageNamed:@"image2"],
                                     [UIImage imageNamed:@"image3"],
                                     [UIImage imageNamed:@"image4"], nil];
myImageViewForAnimation.animationDuration = 1.0f;
myImageViewForAnimation.animationRepeatCount = 0;
[myImageViewForAnimation startAnimating];
[self.view addSubview: myImageViewForAnimation];

更新(根据评论要求):

您可以在操作方法中获取已添加手势识别器的视图,或者您可以为每个imageview设置tag并在操作方法中处理它。

例如,

 -(void)tapOnProfileImage : (UITapGestureRecognizer*)recog{


UIImageView *tempView = (UIImageView *)recog.view;

// or

if (recog.view.tag == 1) {

    // image 1
}

if (recog.view.tag == 2) {
    //image 2
}
}

因此,在每个图像视图上,您应该添加目标和选择器- tapOnProfileImage,并且您可以根据上面的代码片段进行区分!

我想要根据用户点击的不同图像将其导航到不同的屏幕。那么如何确定点击了哪个图像? - Binh Le
在图像上添加tapgesturerecognizer,然后您可以在操作方法中处理轻拍。 - Ketan Parmar
您的建议只是用于检测用户交互,但如何确定用户点击了哪个图像呢?请继续向我提供指南 :) - Binh Le

2

您可以使用gif图像,但不能直接在启动xib上使用。您需要创建一个视图控制器并将gif图像加载到该视图控制器上,在动画完成后,从导航堆栈中删除此控制器。https://github.com/Flipboard/FLAnimatedImage 使用此gif图像视图控件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接