2012-01-15 13 views
0

縦型レイアウトでうまく動作するUIAlertViewを起動していますが、横長モードではメッセージが表示されません。UIAlertViewにメッセージテキストが表示されない

標準のUIAlertViewで、3つのボタンがあります。

UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:@"one", @"two", nil]; 

私は(メッセージラベルの高さに応じて)ボタンを下に移動し、再配置ボタンに応じて、アラートのサイズを変更しようとしたが、メッセージが表示されない、そこにはの余地ているにもかかわらず、表示。デバッグのためのいくつかの色にUILabelの背景を設定する
はそれだけで表示されていないことを示している。..

EDIT:

UILabel ある - それは、単に表示されていません。
willPresentAlertViewメソッドでは、NSAlertViewのサブビューでUILabelを見ることができます。

+0

UIAlertView!= NSAlert。前者はiOS、後者はMac OS Xです。 – DarkDust

+0

@ダークダスト:キーボードのスリップ。変更されました。ありがとう – DefenestrationDay

+0

[UIAlertViewのランドスケープモードではメッセージが表示されません]の複製が可能です(http://stackoverflow.com/questions/8059297/uialertview-in-landscape-mode-does-not-display-message) – DarkDust

答えて

1

は、おそらくあなたは逃した:

[alert show]; 
+0

Afaikオリエンテーションとの違いはありません...どちらの向きでもうまく動作します... – DAS

+0

アラートが表示されています。ボタンなどで閉じることができます。メッセージテキストは表示されません。 – DefenestrationDay

+0

自分で試してみてください:2つのボタンを使って、メッセージがうまく表示されます。 3つのボタンを使用すると、ボタンレイアウトがメッセージのための十分な余地を残さないため、メッセージは実際には横長モードでは表示されません。 – DarkDust

-1

あなたが直接uialertviewを使用して、それのオブジェクトを作成することができます。その後、タイトルとメッセージとボタンと他のボタンを渡し.....そしてボタンをクリックしてメソッドを呼び出します。

//例

UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Title" message:@"The message." 
delegate:self cancelButtonTitle:@"button 1" otherButtonTitles:@"button", nil]; 
        [alert show]; 
        [alert relaese]; 


//Then use this method 

-(void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
// the user clicked one of the ok/cancel buttons 
    if(buttonIndex==0) 
    { 
     NSLog(@"Ok"); 
    } 
    else 
    { 
    NSLog(@"cancel"); 
    } 
} 
2

UIAlertViewのためのレイアウトコードのバグのように見えます。デバッガでちょっと試練した後、私はこの回避策を取ることができた:

UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:@"one", @"two", nil]; 

[alert show]; 

// for some reason we have alpha 0 for 3 or 4 buttons 
[[[alert subviews] objectAtIndex:2] setAlpha:1]; 
// also, for 3 buttons the height goes to 10 -> proof of concept 'fix' 
[[[alert subviews] objectAtIndex:2] setFrame:CGRectMake(12, 45, 260, 24)]; 

[alert release]; 

これはまさに実証の証です。実際の作業では、サブビューを繰り返し、高さが小さいか、またはアルファ== 0のラベルだけを修正する必要があります。

関連する問題