0

これが以前に直接尋ねられたかどうかはわかりませんが、そうであれば申し訳ありません。私が達成しようとしているほとんどのことは、UIScrollView 内のサブビューである UIImageView を Photos.app とまったく同じ方法で回転させることです。

画像自体を回転させるコードを示すSOの周りには多くのリンクがありますが、それがPhotos.appで行われる方法であるかどうかはわかりません。

誰かが Photos.app で行う方法を明確にすることができれば、それは素晴らしいことです!

ありがとう!

4

1 に答える 1

0

写真アプリの意味がわかりませんが、ビューを回転させる方法はあまりありません。基本的に 2 つの方法があります。最初の方法は、次の例のように 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];

もう 1 つの方法は、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 に答える