他の多くの人がこの質問をしましたが、答えられたことはありません. この問題はささいなことのように見えますが、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 値であるUIViewAutoresizingFlexibleBottomMarginandに設定されている場合に予想されるものであるため、UIActionSheet インスタンスでメソッドを呼び出して値をリセットしてみました。UIViewAutoresizingFlexibleRightMarginsetAutoresizingMask
[myActionSheet setAutoresizingMask:UIViewAutoresizingNone];
しかし、Autoresizing Mask のこの値も他の値も、何の変化も達成しません。
この問題の解決策はありますか? UIActionSheet私はオンローテーションを却下して再表示することに頼らないことを望みます - そのアプローチは原則として不必要に思えます。