6

一番上のステータスバーの真下からスライドするアクションシートを表示したいと思います。

表示するビューとしてnavigationBarを使用すると、シートは画面の下部に表示されたままになります。代わりに上から発生していることをどのように表示できますか?

次のコードを呼び出しているクラスは「UIViewController」です

UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"Hello" delegate:nil 
          cancelButtonTitle:nil 
          destructiveButtonTitle:nil 
          otherButtonTitles:nil];

UINavigationBar *navBar = self.navigationController.navigationBar;

[sheet showInView:navBar];

一部のアプリでは、ステータスバーがある場所から、ある種の引き出しがスライドして表示されるのを見てきました(例:Twitterrific)これはどのように行われますか?

4

2 に答える 2

4

Apple は、すべてのアクション シートが同じように機能し、同じ方向からスライドすることを望んでいると述べています。したがって、アニメーションなどを簡単に操作する宣伝された方法はありません。

于 2010-01-14T19:17:53.617 に答える
0

確かにそれは可能です。簡単ではありませんが、簡単です。次のようにします。

UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle...];
sheet.transform = CGAffineTransformmakeRotation(M_PI);
[sheet showInView:view];

それが表示されるビュー (ここではビューと呼びます) も変換する必要があります。次のことも行います。

view.transform = CGAffineTransformMakeRotation(M_PI);

たとえば、この ActionSheet を表示するだけの空のビューを使用します。

分かりやすかったと思います(^^)

サンドロ・マイヤー

于 2010-01-30T16:05:33.100 に答える