【问题标题】:Should I use GIF file or animation code on iOS?我应该在 iOS 上使用 GIF 文件还是动画代码?
【发布时间】:2017-02-04 18:54:15
【问题描述】:

我打算在 iOS 上制作一个由一个人、一个椅子对象组成的启动画面。这些对象中的每一个都具有独立的方面,例如一起动画的手、头、身体和脚。我想知道哪种方式更好?导入 GIF 文件或编码 CALayer 对象然后添加动画?

【问题讨论】:

  • 这仅取决于您要为提交任务而牺牲的资源:时间内存

标签: ios iphone animation calayer


【解决方案1】:

您不能为启动屏幕(启动屏幕)使用 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];

更新(如评论中所要求):

您可以获取您在操作方法中添加gesture recognizer 的视图,也可以将tag 设置为每个imageview 并在操作方法中处理它。

例如,

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


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

// or

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

    // image 1
}

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

因此,在每个图像视图上,您​​都应该add target with selector - tapOnProfileImage 并且您可以按照上面的代码 sn-p 中所述区分它!

【讨论】:

  • 我想将用户导航到不同的屏幕以获取他们点击的不同图像。那么如何判断点击的是哪张图片呢?
  • 在图片上添加tapgesturerecognizer,你可以处理点击动作方法
  • 您的建议仅用于检测用户交互,但如何确定用户点击了哪个图像?请继续给我指导:)
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    相关资源
    最近更新 更多