ios怎样在imageView实现动画

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios怎样在imageView实现动画相关的知识,希望对你有一定的参考价值。

UIImageView是继承自UIView的子类,所以,imageView可以使用UIView提供的动画方法来实现简单动画,实现代码如下:

参考技术A @property(nonatomic,copy) NSArray *animationImages;
这个数组中放动画的图片

@property(nonatomic) NSTimeInterval animationDuration;
动画时间
- (void)startAnimating;
- (void)stopAnimating;
- (BOOL)isAnimating;动画的开始,结束,动画中
参考技术B UIImageView *imageView = [UIImageView new];
//设置默认图片

imageView.image = [UIImage imageNamed:@"默认图片"];

//初始化动画图片数组

NSMutableArray *imgArr = [NSMutableArray array];

for (int i = 0; i < 20; i++)

UIImage *img = [UIImage imageNamed:[NSString stringWithFormat:@"img%02d",i]];

[imgArr addObject:img];



//设置动画图片

imageView.animationImages = imgArr;

//一轮动画执行时间

imageView.animationDuration = 3.0;

//动画重复次数 默认0无限次

imageView.animationRepeatCount = 1;

//开始动画

[imageView startAnimating];

//结束动画

[imageView stopAnimating];
参考技术C [UIView animateWithDuration:2 animations:^

self.imageView.transform = CGAffineTransformMakeScale(0.2, 0.3);大小

];
其他的动画也是同样格式,
CGAffineTransformMakeTranslation(130, 40) 是平移
CGAffineTransformMakeRotation(M_PI) 是旋转

在 ImageView 中缩放图像(缩放 x,y) - IOS

【中文标题】在 ImageView 中缩放图像(缩放 x,y) - IOS【英文标题】:Scale an Image in ImageView (Scale x,y) - IOS 【发布时间】:2016-12-27 20:50:49 【问题描述】:

我通常在 Android 中使用 scaleX 和 scaleY 属性来缩放 imageView 的图像。

我怎样才能在 IOS 中做同样的事情?我真的是 IOS 新手,我正在使用 swift 3,但我没有发现任何类似的东西。

【问题讨论】:

此链接可能对您有所帮助。 ***.com/questions/31966885/… 【参考方案1】:

如果您需要按比例缩放图像,以下代码可能适合您:

if let cgImage = imageView.image?.cgImage, let orientation = imageView.image?.imageOrientation 
    imageView.image = UIImage(cgImage: cgImage, scale: newScale, orientation: orientation)

但是,如果您只想以与原始图像不同的大小显示它,则应使用呈现它的UIImageView 的大小来控制图像的大小。为确保图像与视图大小正确缩放,请查看UIImageView.contentMode 属性:https://developer.apple.com/reference/uikit/uiview/1622619-contentmode

【讨论】:

我试过你的代码但没有改变任何东西,我只是改变了:newScale with 0.5 contentMode 是否设置为 Scale to Fill?如果是这样,UIImage 可能会被重新调整以填充UIImageView。正如我所说,是UIImageView 的大小决定了UIImage 的大小,而不是相反(除非您选择不会导致图像大小调整的contentMode,例如center) . 您在UIImageView 上定义了哪些约束? 我更改了 contentMode,现在可以正常工作了!这是我一直在寻找的解决方案,但我怎样才能仅缩放 Y 或仅缩放 X?有可能吗? 这是可能的,但要复杂得多。除了显示之外,您是否需要缩放的UIImage 用于其他目的?如果没有,您是否事先知道图像的预期尺寸?

以上是关于ios怎样在imageView实现动画的主要内容,如果未能解决你的问题,请参考以下文章

imageView添加阴影和边框

iOS UIButton设置图片动画

IOS:在带有动画的 ImageView 下禁用滚动视图

ios开发核心动画五:转场动画

iOS Swift 仿微信朋友圈实现图片点击放大查看

ios开发核心动画五:图标抖动效果--CAKeyframeAnimation