我不确定以前是否曾直接问过这个问题,但如果有,我深表歉意。我试图完成的几乎所有事情都是旋转 UIImageView,它是 UIScrollView 中的子视图,其方式与 Photos.app 中的完全相同。
SO周围有许多链接显示旋转图像本身的代码,但我不确定这是否是在Photos.app中完成的方式。
如果有人可以在 Photos.app 中清除它的完成方式,那就太好了!
谢谢!
我不确定以前是否曾直接问过这个问题,但如果有,我深表歉意。我试图完成的几乎所有事情都是旋转 UIImageView,它是 UIScrollView 中的子视图,其方式与 Photos.app 中的完全相同。
SO周围有许多链接显示旋转图像本身的代码,但我不确定这是否是在Photos.app中完成的方式。
如果有人可以在 Photos.app 中清除它的完成方式,那就太好了!
谢谢!
我不明白您对照片应用程序的意思,但是旋转视图的方法并不多。基本上有两种方法:第一种方法是应用 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 动画。