缩放图像序列

时间:2013-06-04 19:03:16

标签: ios

我尝试使用imageView.animationImages缩放运行图像序列的UIImageView并调用[self.imageView startAnimating];

- (void) updateViewSizeWithScale:(float) scale
{
    // calculate the new size based on the scale
    int newSize = originalSize * scale;

    [UIView animateWithDuration:0.4 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
    self.imageView.frame = CGRectMake(self.imageView.frame.origin.x, self.imageView.frame.origin.y, newSize, newSize);
       } completion:^(BOOL finished) {

    }];

在动画图像运行时,这不会缩放UIImageView。我试图在动画块中设置self.frame(self是一个UIView子类),但它不会缩放imageview。

在容器视图中运行一系列图像并缩放容器以便在序列运行时图像缩放的最佳方法是什么?

我应该使用图层还是更低级别的API?

2 个答案:

答案 0 :(得分:1)

昨天我遇到了同样的问题,并且在设置两件事后它起作用了:

self.imageView.clipsToBounds = YES; 
self.imageView.contentMode = UIViewContentModeScaleAspectFit; 

希望它适合你。

答案 1 :(得分:0)

考虑使用CGAffine Transformation来完成这项工作:

[UIView animateWithDuration:0.4 delay:0.0 UIViewAnimationOptionCurveEaseInOut animations:^{
  CGAffineTransform newScale = CGAffineTransformMakeScale(2.0, 2.0);
  CGAffineTransform newTranslate = CGAffineTransformMakeTranslation(10.0, 10.0);

  self.myImageView.transform = CGAffineTransformConcat(newScale, newTranslate);
  } 
  completion:^(BOOL finished) {

 }
];