0

我不确定以前是否曾直接问过这个问题,但如果有,我深表歉意。我试图完成的几乎所有事情都是旋转 UIImageView,它是 UIScrollView 中的子视图,其方式与 Photos.app 中的完全相同。

SO周围有许多链接显示旋转图像本身的代码,但我不确定这是否是在Photos.app中完成的方式。

如果有人可以在 Photos.app 中清除它的完成方式,那就太好了!

谢谢!

4

1 回答 1

0

我不明白您对照片应用程序的意思,但是旋转视图的方法并不多。基本上有两种方法:第一种方法是应用 CGTransformation,如下例所示:

UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
        [imgView setImage:[UIImage imageNamed:@"polaroid_spacer"]];
        [self addSubview: imgView];
        [UIView animateWithDuration:0.3f delay:5.f options:UIViewAnimationOptionCurveEaseIn animations:^{
            [imgView setTransform:CGAffineTransformMakeRotation(M_PI_2)];
        } completion:NULL];

另一种方法是将 CATransform 应用于视图层:

//be sure to include quartz
#import <QuartzCore/QuartzCore.h>

    UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];

    [imgView setImage:[UIImage imageNamed:@"polaroid_spacer"]];

    [self addSubview: imgView];

    CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform"];
    [anim setToValue: [NSValue valueWithCATransform3D: CATransform3DMakeRotation(M_PI_2, 0, 0, 1)]];
    [anim setDuration: 3.f];
    [anim setBeginTime: (CACurrentMediaTime() + 5.f)];
    [imgView.layer addAnimation:anim forKey:@"myAwesomeAnim"];

两者都可以用来实现这一点。但是如果你对 Core Animation 不太了解,你应该使用 Core Graphics。使用它更容易获得一些结果,因为您可以使用 UIView 动画。

于 2013-06-21T19:12:44.927 回答