ユーザーが電話を回転させて自動回転したかのように、autoresizingMasks を使用して手動でビューを回転させるにはどうすればよいですか。また、アニメーションではなく、インスタントにしたいです。なぜこれが必要なのか知りたいのですが、iPhone Dev - keep interface rotationでの私の他の質問を見てください。
ありがとう!!
ユーザーが電話を回転させて自動回転したかのように、autoresizingMasks を使用して手動でビューを回転させるにはどうすればよいですか。また、アニメーションではなく、インスタントにしたいです。なぜこれが必要なのか知りたいのですが、iPhone Dev - keep interface rotationでの私の他の質問を見てください。
ありがとう!!
私はあなたが何を意味するのかよくわかりません
「... autoresizingMasks を使用して ...」
UIIViewアニメーションでも同じことをしました。他にもたくさんのテクニックがあります。ここに私のコードがあります:
-(void)rotateToLandscape
{
UIWindow *win = [[UIApplication sharedApplication]keyWindow];
if(UIInterfaceOrientationIsPortrait(self.interfaceOrientation)){
[[[UIApplication sharedApplication] keyWindow] setBackgroundColor:[UIColor blackColor]];
[UIView beginAnimations:@"View Flip" context:nil];
[UIView setAnimationDuration:0.3];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
win.transform = CGAffineTransformIdentity;
win.transform = CGAffineTransformMakeRotation(degreesToRadian(90));
win.bounds = CGRectMake(0.0f, 0.0f, 480, 320);
win.center = CGPointMake(160.0f, 240.0f);
[UIView commitAnimations];
}
}
// コードに説明が必要ないことを願っています。
//アニメーションステートメントを削除して、必要な効果を得ることができます(アニメーション化されていません)。
ここでやりたいことは、アフィン変換を使用してビューを回転させることです。現時点ではコードを目の前に持っていませんが、これを達成しました。単純な回転を行うと、ビューが切り取られ、希望どおりに中央に配置されないことがわかります。ここで行う必要があるのは、レイヤーのアンカーを設定することです (必要なものが得られるまで値をいじってみてください)。ビューが必要な場所に表示されるようにします。これにアプローチする方法は、90 度のアフィン変換回転を行い、それがビューに及ぼす影響を確認することです。このようにして、レイヤーアンカーが必要な場所を把握できるはずです。後で Mac の前にいるときに、サンプル コードをここに投稿します。それが役に立てば幸い