【发布时间】:2017-02-04 18:54:15
【问题描述】:
我打算在 iOS 上制作一个由一个人、一个椅子对象组成的启动画面。这些对象中的每一个都具有独立的方面,例如一起动画的手、头、身体和脚。我想知道哪种方式更好?导入 GIF 文件或编码 CALayer 对象然后添加动画?
【问题讨论】:
-
这仅取决于您要为提交任务而牺牲的资源:时间或内存。
标签: ios iphone animation calayer
我打算在 iOS 上制作一个由一个人、一个椅子对象组成的启动画面。这些对象中的每一个都具有独立的方面,例如一起动画的手、头、身体和脚。我想知道哪种方式更好?导入 GIF 文件或编码 CALayer 对象然后添加动画?
【问题讨论】:
标签: ios iphone animation calayer
您不能为启动屏幕(启动屏幕)使用 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,你可以处理点击动作方法
您可以使用 gif 图像,但不能直接在启动 xib 时使用。您创建一个视图控制器并在该视图控制器上加载 gif 图像,一旦动画完成,然后从导航堆栈中删除该控制器。 https://github.com/Flipboard/FLAnimatedImage 使用这个 gif 图片视图控件。
【讨论】: