0

作業中のアプリにこのメニューを追加しています:http://mobiledevelopertips.com/open-source/ios-open-source-animated-menu.html

私はObjectiveCに比較的環境に配慮しており(1か月未満しか取り組んでいません)、次の方法が完全にはわかりません。

1)ボタンを押してメニューを開いたときに、画面全体に灰色のオーバーレイを追加したい。私は解決策を探しましたが、多くの人が私には機能しないDSActivityViewを推奨しているようです...私はその読み込みバブルは必要ありません。ソースをダウンロードしてバブルを削除することはできると思いますが、それは価値があるよりも多くの努力を必要とするかもしれません。

imageViewをインスタンス化し、0,0にドロップして、透明な灰色のPNGファイルを使用して画面の境界まで展開できると思います...

CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;

imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"transparent_gray.png"]];
imageView.frame= CGRectMake (0,0,screenWidth,screenHeight);
[viewController addSubview:imageView];

ただし、このアプローチはおそらく機能しません(タブバーやステータスバーなどのナビゲーションコントローラーには対応していないと思います)。さらに、AwesomeMenu内からviewControllerにアクセスする方法がよくわかりません。imageViewをviewControllerにデプロイできるようにするには、AwesomeMenuをインスタンス化するviewControllerの参照をAwesomeMenuの関数の1つに渡す必要があると思いますか?

2)オープニングメニューのアニメーションが停止したときに起動するデリゲートを作成したいので、オーバーレイされた画面にテキストを書き込むことができます。これを行うための非常に簡単な方法はありますか、それともタイマーの開始/コールバックでゲスト化して、コールバックにテキストを画面に書き込ませる必要がありますか?ああ-私はこれまでデリゲートを書いたことがありませんが、アニメーションの終了時にデリゲートを起動させたい場合は少し複雑になると思います。

4

1 に答える 1

1

ええと、UIKitの仕組みについて先入観があると思います。1)については、SOで「ビューカバー画面」を検索し、特にビューアニメーションに関連する問題をよりよく理解することをお勧めします。第二に、あなたの2)アイテムを達成するための多くの方法があります。AwesomeMenuのソースがある場合は、実行するアニメーションを変更するだけです。アニメーションがで行われた場合は、ブロックanimateWithDuration:animations:を追加するだけです。completion:複数の場所から完成アニメーションを作成する必要がある場合は、代理人を検討することをお勧めします。AwesomeMenuのカテゴリを記述して、機能を追加できる場合があります。あなたの場合、必要なのは単純なコード変更だけだと思います。ただし、これ以上のコード/事実がなければわかりません。

于 2012-10-05T03:48:33.173 に答える