iPhone開発-ビューを手動で回転
-
10-07-2019 - |
質問
autoresizingMasksを使用して、ユーザーが電話を回転させて自動回転させたように、手動でビューを回転させるにはどうすればよいですか。また、私はそれが即座に、アニメーションなしになりたいです。なぜこれが必要なのか知りたいのですが、 iPhone Dev-インターフェイスの回転を維持する他の質問をご覧ください。 。
ありがとう!!
解決
ここでやりたいことは、Affine変換を使用してビューを回転させることです。現時点では、コードを手元に持っていませんが、これを達成しました。単純な回転を行うと、ビューが望みのように中央ではなく切り取られることがわかります。ここで行う必要があるのは、レイヤーのアンカーを設定することです(値が必要なものになるまで値をいじってみてください)ビューを目的の場所に表示するために。これにアプローチする方法は、90度のアフィン変換回転を行い、ビューに与える影響を確認することです。これにより、アンカーが必要なレイヤーをどこで見つけることができるはずです。後でMacの前にいるときに、サンプルコードをここに投稿します。役に立てば幸いです
他のヒント
あなたが何を意味するのかよくわかりません
" ... 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];
}
}
//コードに説明が不要であることを願っています。
//アニメーションステートメントを削除して、必要な効果を得ることができます(アニメーションなし)。
所属していません StackOverflow