-2

何らかの理由で特定のデザインを使用しているアプリケーションがあります。背景画像のある他のボタンの上の警告ビューにテキストフィールドを配置しました。すべてがios 6バージョンで正常に動作しています。

UIAlertView *av=[[UIAlertView alloc] initWithTitle:@"fdhdj" message:@" hdfjkhfjkhdk" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:@" ",@"cancel",nil];
     av.alertViewStyle = UIAlertViewStylePlainTextInput;
 namefield = [[UITextField alloc] initWithFrame:CGRectMake(10.0,43.0, 264.0, 44.0)];
    namefield.borderStyle = UITextBorderStyleNone;
    namefield.background = [UIImage imageNamed:@"text_field_default.png"];
    namefield.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
    namefield.textAlignment = UITextAlignmentCenter;
    //[namefield setBackgroundColor:[UIColor whiteColor]];
    [av addSubview:namefield];
    [namefield release];
    av.tag=12;
    av.delegate=self;  
    [av show];

    [av release];

しかし、iOS 7 では、UIAlertView のビュー階層を簡単に変更できないと聞きました。この場合の1つの代替手段は、設定することです

alert.alertViewStyle = UIAlertViewStylePlainTextInput

しかし、そのテキスト フィールドを好きな場所に追加できますか? 私の場合のように、最初の他のボタンの上のように、誰か助けてくれますか?

4

4 に答える 4

3
 UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Enter Student Name" message:@"" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Save",nil];

 [alertView setAlertViewStyle:UIAlertViewStylePlainTextInput];
 [alertView show];

私はこのように使用していましたが、非常にうまく機能しています

于 2013-10-07T07:23:48.473 に答える
0

testFieldあなたの質問に対する簡単な答えは NO ですUIAlertViewStylePlainTextInput

これはアップルからです:

UIAlertView クラスはそのまま使用することを意図しており、サブクラス化はサポートしていません。このクラスのビュー階層は非公開であり、変更してはなりません。

残念ながら、UIAlertView のビュー階層を簡単に変更できないと聞いたの は間違っていますUIAlertView。iOS7 では a のビュー階層をまったく変更できません。

Web には良い代替手段があります。cocoacontrols.comで確認できます。

于 2013-10-07T08:39:40.033 に答える
0

iOS 7 で UIAlertView のビュー階層を簡単に変更することはできません。

あなたの場合の1つの代替手段は、alert.alertViewStyle = UIAlertViewStylePlainTextInput; を設定することです。これにより、テキスト フィールドが追加されます。UITextField *textField = [alertView textFieldAtIndex:0]; を使用して、UIAlertView デリゲート コールバックでアクセスできます。

于 2013-12-28T04:56:37.010 に答える