iOSが7.1から8になり、アラートで表示されるデザインや、実装方法が地味に変わりました。
デザインについて
アラートの見た目が、7.1までは背景の色はものすごく薄く背景の色が入っていますが、8になって今までよりもより濃い背景の色が入るようなデザインになりました。
また、7.1ではボタンとメッセージの間の線は灰色でしたが、8では白と背景色を合わせたような色に変更されています。
7.1
8.0
実装方法について
7.1までは1行で宣言やボタンのテキストなどを設定できましたが、8ではタイトルやメッセージの設定とボタンの設定については別になりました。
7.1
1 2 3 4 5 6 |
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"背景" message:@"背景色確認用" delegate:self cancelButtonTitle:@"確認" otherButtonTitles:nil]; [alert show]; |
8.0
1 2 3 4 5 6 7 8 9 10 |
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"背景" message:@"背景色確認用" preferredStyle:UIAlertControllerStyleAlert]; [alert addAction:[UIAlertAction actionWithTitle:@"確認" style:UIAlertActionStyleDefault handler:nil]]; [self presentViewController:alert animated:YES completion:nil]; |
ボタンを新しく個別で設定できるようになったため、今までよりも記述する量は増えましたが拡張性は高くなったと思います。
UIAlertControllerではデフォルトのスタイルは今までと同じアラートですが、ActionSheetを選択することによって、アクションシート風のアラートを出すこともできます。
またボタンのスタイルも幾つか用意されているようなので、場合によって使い分けていく必要があるかもしれません。
ちなみに、7.1以前ではアラートにタイトルを入れずにメッセージにだけ文章を入れていてもちゃんと表示されましたが、8.0からはタイトルを入れずメッセージだけテキストを入れると、メッセージとして表示されずにタイトルとして表示されてしまい、かつレイアウトが崩れるということになってしまうので注意が必要です。
では、また