UIImageView缩放/淡入动画?

4

我想为当UIImageView在我的视图中显示时制作一个小的缩放/淡出动画,我已经有了淡入效果的代码:

    banner.alpha = 0.0;
    [UIView animateWithDuration:2.0 animations:^{
        banner.alpha = 1.0;
    }];

现在我想知道是否有另一种简单的方法将淡入淡出效果与略微缩放的效果相结合,比如图像在淡入时变大并填充框架?有什么想法吗?谢谢!
2个回答

11

你可以使用 CG_EXTERN CGAffineTransform CGAffineTransformMakeScale(CGFloat sx, CGFloat sy) 来实现缩放效果

例如:

banner.alpha = 0.0;

[UIView animateWithDuration:2.0 animations:^{
    banner.alpha = 1.0;
    banner.transform =CGAffineTransformMakeScale(1.3,1.3);
}];

1
大致上就是这样,但我认为Jon想在动画中从0.0缩放到1.0。(猜测) - Ben
@Ben 是的,也许吧,但机制是相同的,哈哈,如果他想要,他需要将比例设置为(0,0),在块方法上方:) - Guo Luchuan
@Guo Luchuan,我在主视图控制器的UIView中有一个UIImageView子视图。当我使用上述代码缩放我的UIImageView时,UIImageView的框架超出了UIView。我还设置了UIView的clipstobound=YES。我必须保持UIImageView的缩放在UIView内部。请问有什么建议吗? - Mitesh Dobareeya

4
你可以使用框架。
banner.alpha = 0;

[UIView animateWithDuration:2.0f animations:^(void){
   banner.alpha = 1.0f;
   [banner setFrame:CGRectMake(0, 0, 1024, 748)];
}];

// With Completion
[UIView animateWithDuration:0.1f animations:^(void){
   banner.alpha = 1.0f;
   [banner setFrame:CGRectMake(0, 0, 1024, 748)];
}completion:^(BOOL finished) {

}];

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