9

誰もがこれを作るためのコードを持っています:

UIAlertViewHack
(出典:booleanmagic.com

またはさらに良いことに、UIAlertViewオブジェクトを使用した画像付きのボタンの3x2グリッド?

テキストフィールドは気にしません。必要なグリッド内のボタンです(できればテキストではなく画像を使用します)。

4

5 に答える 5

27

UIAlertビューのカスタマイズを忘れて、自分でカスタムビューを作成するのが最善の策だと思います。

1つは、実際に表示しているのは「アラート」ではないため、UIAlertViewの目的に反するものです。これは、ユーザーのUIパラダイムを変更していることを意味しますが、これは決して良い考えではありません。

次に、UIAlertViewをハックして目的の動作をさせるよりも、カスタムビューを所定の位置にアニメーション化する方がはるかに簡単です。

于 2009-02-16T06:15:21.763 に答える
11

まず、コントロールに対応するためにアラートボックスを大きくする必要がありますが、中央に配置する必要があります。

このため、フレームサイズを設定する代わりに、「\n」をneccとして使用したメッセージテキストを作成します。例えば:

alert = [[UIAlertView alloc] initWithTitle:@"Rate this picture."
message:@"Tap a star to rate.\n\n\n\n " /*------ look at here!!----*/
delegate:self
cancelButtonTitle:nil
otherButtonTitles:nil];

次に、アラートビューにUIAlertViewDelegateを使用します。

その、viewWillAppearをオーバーライドします。ボタンを追加し、フレームを手動で目的の位置に設定します。

または:View Controllerを使用してビュー全体を作成し、次のようにビューをアラートボックスに追加します。

[myalertview addSubvew:mycomplexalert];

これがあなたの助けになることを願っています:)

星の画像、twitter、fbフィードバックなどの評価入力にアラートボックスを使用しています。

iOS7のアップデート:

iOS 7の場合、コンポーネントを使用して独自のビューを作成し、alertviewのアクセサリビューとして設定します。

[alert setValue:imageView forKey:@"accessoryView"]; 

その単純な:-)

于 2009-07-23T06:21:33.703 に答える
6

私はほぼ完全に構成可能な UIAlertView の置き換えを作成しました。ニーズに合っている場合は、CODialogをご覧ください。

于 2012-04-13T11:43:02.050 に答える
6

このチュートリアルでは、入力テキスト ボックスを実現するために UIAlertView をサブクラス化する方法について説明します。ビューを拡大する方法、サブビュー (テキスト ボックスや画像など) を追加する方法、ボックスを画面の上部に移動するための変換を行う方法について説明します。

于 2009-08-23T15:53:13.517 に答える
4

このための組み込みコンポーネントはありません。UIAlertView には、HIG ドキュメントに従って、テキストとボタンのみが必要です。

独自のビューを作成し、それにコントロールを追加する必要があります。SDK の HeadsUpUI の例は、カスタム メニューのようなビューをオーバーレイとして表示する方法を示しています。

それが役立つことを願っています。

于 2009-02-16T18:20:58.833 に答える