30

他の多くの人がこの質問をしましたが、答えられたことはありません. この問題はささいなことのように見えますが、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私はオンローテーションを却下して再表示することに頼らないことを望みます - そのアプローチは原則として不必要に思えます。

4

0 に答える 0