22

iPad で UIActionSheet を表示するには、次のようにしました。

[actionSheetX showFromRect:RectX inView:myView animated:YES];

ポップオーバーの矢印は下向きですが、通常のポップオーバーを使用するときのように、この位置を左、上、または右に変更できますか?

4

3 に答える 3

25

Appleは、UIActionSheetの内部実装の内部構造へのアクセスを提供していませんshowFromRectが、矢印の方向に関しては、実際にはこれを回避するための非常にハックな方法があり、矢印の方向を目的の方向に変更することができます。

トリックは、のrectパラメータをいじること- (void)showFromRect:(CGRect)rect inView (UIView *)view animated:(BOOL)animatedです。Appleは、このrectパラメータを十分に文書化していないが、元のrectが下向き矢印の方向を示す場合は、高さが高く、原点が負の数のrectをフィードします。yは、アクションシートのポップオーバーを完全に押し上げます。したがって、上向きの矢印の方向を示しています。これは極端なハックですが、ファームウェア全体で一貫して機能します。それが役に立てば幸い。

于 2012-01-01T13:24:08.427 に答える
4
CGRect cellRect = cell.bounds;
cellRect.size.width = cell.frame.size.width * 2;
cellRect.origin.x = -(cell.frame.size.width + 10.0);
[_actionSheet showFromRect:cellRect inView:cell animated:YES];

おかげで - オーバーボミング。

iPad - 分割ビュー コントローラー: マスター ビュー (テーブル ビュー) セルの最後に左矢印でアクション シートを表示します。セル内に 10 ピクセルの内側の矢印。これを試して。アクションシート表示のロジックがわかりやすい。ありがとう - マンラジ。

于 2012-10-15T19:13:02.983 に答える
2

-showFromRect:inView:メソッドのドキュメントには、次のように記載されています。

iPad では、このメソッドはアクション シートをポップオーバーに表示し、矢印はビューの指定された長方形を指します。

これは、rect をいじることで、必要な矢印の方向を表示できる可能性があることを意味します。UIActionSheetただし、最適な矢印の方向が自動的に計算されるため、矢印の方向を手動で設定する理由を考えることができる理由はありません。

于 2011-03-22T04:24:03.887 に答える