他の多くの人がこの質問をしましたが、答えられたことはありません. この問題はささいなことのように見えますが、Apple のドキュメントや他の場所ではまだ対処されていません。
showInView
メソッドを使用して UIActionSheet インスタンスを提示しています。
UIActionSheet *myActionSheet = [[UIActionSheet alloc] initWithTitle:@"Test" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Destroy" otherButtonTitles:@"One", @"Two", nil];
[myActionSheet showInView:self.view];
UIActionSheet は、起動した方向に関係なく中央にレンダリングされますが、iPad を回転させると、top-right
またはbottom-left
(方向が縦または横に変更されたかによって) に表示されます。
この動作は、Autoresizing Masks がほとんどのビュー要素のデフォルトの autoresizingMask 値であるUIViewAutoresizingFlexibleBottomMargin
andに設定されている場合に予想されるものであるため、UIActionSheet インスタンスでメソッドを呼び出して値をリセットしてみました。UIViewAutoresizingFlexibleRightMargin
setAutoresizingMask
[myActionSheet setAutoresizingMask:UIViewAutoresizingNone];
しかし、Autoresizing Mask のこの値も他の値も、何の変化も達成しません。
この問題の解決策はありますか? UIActionSheet
私はオンローテーションを却下して再表示することに頼らないことを望みます - そのアプローチは原則として不必要に思えます。