我不确定此事是否曾被直接询问,但如果有,我道歉。我试图完成的几乎所有工作都是在UIScrollView中旋转一个子视图的UIImageView,就像它在Photos.app中一样。
S.O周围有许多链接显示旋转图像本身的代码,但我不确定这是否是在Photos.app中完成的方式。
如果有人能够在Photos.app中完成它的工作方式,那就太棒了!
谢谢!
答案 0 :(得分: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动画。