1

3 つの TextField と 3 つのラベルを持つ UIAlertView を作成しようとしています。

しかし、私の現在のコードでは、それらは互いに重なり合うだけで、AlertView のフレームを変更しようとしましたが、CGAffineTransform を使用しようとしましたが、どちらも機能しませんでした。

これが私のコードです:

UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Sign in" message:@"\n\n\n\n\n" delegate:self cancelButtonTitle:@"Stop" otherButtonTitles:@"Sign in",nil];

UILabel *customerIdLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 55, 65, 21)];

customerIdLabel.tag =1;
customerIdLabel.text = @"Customer id: ";
[myAlertView customerIdLabel];

UITextField *customerIdField = [[UITextField alloc] initWithFrame:CGRectMake(89, 50, 160, 30)];

customerIdField.tag = 2;
customerIdField.placeholder = @"Fill in your customer id";
[myAlertView customerIdField];

そして、それらの組み合わせがさらに 2 つあります。

私が試した変換は次のとおりです。

CGAffineTransform myTransform = CGAffineTransformMakeScale(1.0, 0.5f);
[myAlertView setTransform:myTransform];

そして、これは私が得るものです:

ここに画像の説明を入力

4

3 に答える 3

3

そのような UIAlertViews を使用することは想定されていません。タイトル、メッセージなどを設定し、[alertview show] を使用することになっています。ドキュメントは、それがそのままのクラスであることをかなり明確にしているようです.UIAlertViewStyleはあなたが見ることができるものかもしれませんが、オプションは1つのテキストフィールド、1つのセキュアフィールド、またはユーザー名とパスワードフィールドです.

最良のオプションは、新しい UIViewController を使用し、presentViewController:animated:completion:呼び出しを使用することです。

于 2012-10-18T19:58:09.627 に答える
0

UIAlertViewを変更せずにこれを回避しますが、表示時にその上に明確なビューを追加し(スペースで埋めることができます)、正しい位置にテキストフィールドを追加します(回転が発生する場合に注意してください)。次に、タップしてビューを介してUIAlertViewに移動します。これは、ストア内の3つのアプリでAppleを通過しました。

于 2012-10-18T20:07:00.153 に答える