iphone - 設定 - 画面 横向き 直す




iphone:タッチイベントで四角形の画像を回転するにはどうすればいいですか? (2)

正方形の画像や丸い画像を変換するのは簡単です...

しかし、どのような長方形の画像場合???

これはタッチイベントで変換したい画像です。

円の中心は(30,236)です。画面上の任意の場所にタッチすると

Imageviewは、矢印を私のタッチポイントに変換します。

しかし、サークルセンターはまだ同じ場所です。

私は画像を使用してテストアングルを変換しようとする

それはこのようになります...

画像の調整方法は?

コードもここにあります

- (void)viewDidLoad {
    CGRect arrowImageRect = CGRectMake(20.0f, 20.0f, 15.0f, 220.0f);
    arrow = [[UIImageView alloc] initWithFrame:arrowImageRect];
    [arrow setImage:[UIImage imageNamed:@"arrow.png"]];
    arrow.opaque = YES;
    [self.view addSubview:arrow];
    [super viewDidLoad];
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch = [touches anyObject];
    CGPoint touchPoint = [touch locationInView:self.view];
    NSLog(@"Position X: %f \n, Y: %f",touchPoint.x,touchPoint.y);
    CGAffineTransform transform = CGAffineTransformIdentity;
    arrow.transform = CGAffineTransformRotate(transform, ?????? );
}

?????? 最後の解決策になるはずです...

または、私はイメージビューのサイズを変更する必要がありますか?

返信や返信ありがとう:-)

ウェバー


変換メソッドに関するドキュメント

トランスフォームの起点は、centerプロパティの値、またはレイヤのanchorPointプロパティが変更された場合の値です。 基本のCore Animationレイヤーオブジェクトを取得するには、layerプロパティーを使用します。デフォルト値はCGAffineTransformIdentityです。

だからあなたはこのようにあなたの回転の中心を設定することができるはずです!

また、回転角度を決定するには、 atan2またはatan2f関数を使用します。

float angleInRadians = atan2f(touchPoint.y-circleCenter.y , touchPoint.x-circleCenter.x);

変換後に中心を設定することができます。

CGPoint centerBeforeTransform = view.center;
//your transform code
view.center = centerBeforeTransform;




cgaffinetransform