複数のボタンを持つ UIAlertView があります。ボタンをグレーアウトして無効にすることはできますか? ボタンを表示したいが、押せないことを明確にしたい。任意の提案をいただければ幸いです。
2 に答える
1
現在の VC が<UIAlertViewDelegate>
プロトコルの実装として有効になっていることを確認してから、VC で次の操作を実行できます。
- (void)viewDidAppear:(BOOL)animated {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert!" message:@"This is an alert view" delegate:nil cancelButtonTitle:@"Cancel!" otherButtonTitles:@"Off", @"On", nil];
alert.delegate = self;
[alert show];
}
/* UIAlertViewDelegate methods */
- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView {
return NO;
}
// Other UIAlertViewDelegate methods...
機能を持たないボタンで UIAlertView を表示したい理由は、まったく別の問題です... :)
于 2013-08-03T02:46:03.687 に答える
0
多くの人が UIAlertView をサブクラス化していると聞いていますが、Apple の UIAlertView Class Reference ページで次のコメントを読みました。
サブクラス化の注意事項
UIAlertView クラスはそのまま使用することを意図しており、サブクラス化はサポートしていません。このクラスのビュー階層は非公開であり、変更してはなりません。
つまり、UIAlertView の要素や動作を変更しようとするべきではありません。iOS の新しいバージョン (iOS 8 や iOS 7.1 など) では動作が変更され、UIAlertView に対するさまざまな変更が壊れる可能性があります。
とにかく、あなたの質問に答えるために: ビューの上に UIAlertView のようなサブビューとして追加できる独自の UIView を作成してみませんか? そうすれば、ボタンとその動作の両方を簡単に制御できます。
于 2013-08-03T02:38:41.583 に答える