IOS学習のUALert Controller
5907 ワード
転載してから http://www.cocoachina.com/ios/20141126/10320.html
iOS 8の新しい特性の一つは、インターフェースをより適応させ、より柔軟にすることで、多くのビューコントローラの実現方法に大きな変化が生じている.新しいUICPresentationControllerは、ビューコントローラ間の遷移アニメーション効果と適応デバイスサイズの変化効果(例えば回転)を実現するために重要な役割を果たし、プログラマたちの仕事量(天地良心)を効果的に節約しました.また、いくつかの古いUICKコントロールも同様に多くの変化が発生しています.例えばAlert View、アクションSheets、Popovers、およびSearch Bar Controllerなどです.本論文ではAlert ViewとAct Sheetsの発生した変化について大まかに紹介します.Objective-Cとswiftの2つの言語を使って同時にコード説明を行います.
UAlertView
アップルの最後のiOS 5のリリースに伴い、ダイアログの表示パターンは私たちの前に現れました.今まで大きな変化がありませんでした.以下のコードセグメントは、キャンセルと「はい」ボタンのあるダイアログビューを初期化して表示する方法を示しています.
Objective-Cバージョン:
1
2
swiftバージョンとObjective-Cバージョンは違っています.swiftでは、alertViewの初期化はキャンセルボタンがあるダイアログビューだけを作成することができます.other ButtionTitlesを持ったinit方法が見られますが、残念ながら、この方法はコンパイルによってはいけません.
1
2
上のObjective-Cのバージョンと同じダイアログビューを作成するには、私たちは曲線救国の方法を取ることができます.面倒ですが、目的のためには手段を選ばなくてもいいですよね?
1
2
3
4
5
6
7
UAlertView登録ダイアログ
UALertView Delegateプロトコルは、ダイアログビューのボタン動作に応答するコールバック方法を有する.また、テキストボックスの内容が変更された場合には、alertView ShoruldEnbaleOther Buttonを呼び出す方法は、ボタンを動的に使用するか、または使用できないようにすることができます.
アップルの公式は現在、iOS 8でUAlertViewを使用することを提唱していません.代わりにUAlert Controllerです.UAlert Controllerの使い方を紹介します.
UAlert Controller
iOS 8では、UAlert Controllerは、機能的にはUAlertViewおよびUICActionit Sheetと同じであり、UICAlert Controllerは、2つの貨物の機能と役割を代替するためにモジュール化されている.ダイアログを使用しますか?それともプルダウンメニューを使用しますか?コントローラを作成する時、どのように選択したスタイルを設定するかによって異なります.
簡単なダイアログの例
二つの異なる作成ダイアログのコードを比較して、基本的なUALert Controllerを作成するコードとUALertViewを作成するコードは非常に似ています.
Objective-Cバージョン:
1
1
UALertActionの例を作成することにより、動作ボタンをコントローラに追加することができます.UALertActionは、タイトル文字列、スタイル、およびユーザがこの動作を選択したときに実行されるコードブロックから構成される.UALert ActionsStyleを通じて、以下の3つの動作スタイルを選択できます.通常、キャンセル、警告の3つがあります.UALertViewを作成する際に作成したボタン効果を実現するためには、この二つのアクションボタンを作成してコントローラに追加すればいいです.
Objective-Cバージョン:
1
2
3
4
1
2
3
4
Objective-Cバージョン:
1
1
ボタンの表示の順序は、ダイアログコントローラに追加される順序によって異なります.一般的には、アップルの公式設定による「iOSユーザインタフェースガイド」は、2つのボタンがあるダイアログで、キャンセルボタンを左に置くべきです.注意したいのですが、キャンセルボタンは唯一です.第二のキャンセルボタンを追加すれば、次のような運行時に異常が発生します.
*Terminating ap due to uncagt exception‘NSInternal InconsistencyException’、reason:“UALert Controller can only have one action with a style of UALertAction Style Cance”
異常情報は簡潔で明瞭であり、ここでは詳しく説明しない.
「警告」様式
何が「警告」の形ですか?私たちはこの問題に慌てずに答えます.まず、以下の「警告」様式の簡単な例を見てみます.この例では、前の例の「はい」ボタンを「リセット」ボタンに置き換えます.
Objective-Cバージョン:
1
2
1
2
私たちが追加した「リセット」ボタンが赤に変わったことが分かります.アップルの公式の定義によると、「警告」のボタンは、データを変更または削除する可能性がある操作に使われます.そのため、赤色の目立つ表示を使ってユーザーに警告しています.
iOS 8の新しい特性の一つは、インターフェースをより適応させ、より柔軟にすることで、多くのビューコントローラの実現方法に大きな変化が生じている.新しいUICPresentationControllerは、ビューコントローラ間の遷移アニメーション効果と適応デバイスサイズの変化効果(例えば回転)を実現するために重要な役割を果たし、プログラマたちの仕事量(天地良心)を効果的に節約しました.また、いくつかの古いUICKコントロールも同様に多くの変化が発生しています.例えばAlert View、アクションSheets、Popovers、およびSearch Bar Controllerなどです.本論文ではAlert ViewとAct Sheetsの発生した変化について大まかに紹介します.Objective-Cとswiftの2つの言語を使って同時にコード説明を行います.
UAlertView
アップルの最後のiOS 5のリリースに伴い、ダイアログの表示パターンは私たちの前に現れました.今まで大きな変化がありませんでした.以下のコードセグメントは、キャンセルと「はい」ボタンのあるダイアログビューを初期化して表示する方法を示しています.
Objective-Cバージョン:
1
2
UIAlertView *alertview = [[UIAlertView alloc] initWithTitle:@
" "
message:@
" UIAlertView "
delegate:self cancelButtonTitle:@
" "
otherButtonTitles:@
" "
, nil];
[alertview show];
UALertViewのデフォルトスタイルswiftバージョンとObjective-Cバージョンは違っています.swiftでは、alertViewの初期化はキャンセルボタンがあるダイアログビューだけを作成することができます.other ButtionTitlesを持ったinit方法が見られますが、残念ながら、この方法はコンパイルによってはいけません.
1
2
var
alertView = UIAlertView(title:
" "
, message:
" UIAlertView "
, delegate: self, cancelButtonTitle:
" "
)
alertView.show()
swiftバージョンのUALertView上のObjective-Cのバージョンと同じダイアログビューを作成するには、私たちは曲線救国の方法を取ることができます.面倒ですが、目的のためには手段を選ばなくてもいいですよね?
1
2
3
4
5
6
7
var
alertView = UIAlertView()
alertView.delegate = self
alertView.title =
" "
alertView.message =
" UIAlertView "
alertView.addButtonWithTitle(
" "
)
alertView.addButtonWithTitle(
" "
)
alertView.show()
UALertViewのalertViewスタイルの属性を変更することによって、入力テキスト、パスワード、またはログインボックスの効果を実現することもできます.UAlertView登録ダイアログ
UALertView Delegateプロトコルは、ダイアログビューのボタン動作に応答するコールバック方法を有する.また、テキストボックスの内容が変更された場合には、alertView ShoruldEnbaleOther Buttonを呼び出す方法は、ボタンを動的に使用するか、または使用できないようにすることができます.
アップルの公式は現在、iOS 8でUAlertViewを使用することを提唱していません.代わりにUAlert Controllerです.UAlert Controllerの使い方を紹介します.
UAlert Controller
iOS 8では、UAlert Controllerは、機能的にはUAlertViewおよびUICActionit Sheetと同じであり、UICAlert Controllerは、2つの貨物の機能と役割を代替するためにモジュール化されている.ダイアログを使用しますか?それともプルダウンメニューを使用しますか?コントローラを作成する時、どのように選択したスタイルを設定するかによって異なります.
簡単なダイアログの例
二つの異なる作成ダイアログのコードを比較して、基本的なUALert Controllerを作成するコードとUALertViewを作成するコードは非常に似ています.
Objective-Cバージョン:
1
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@
" "
message:@
" UIAlertController "
preferredStyle:UIAlertControllerStyleAlert];
swiftバージョン:1
var
alertController = UIAlertController(title:
" "
, message:
" UIAlertController "
, preferredStyle: UIAlertControllerStyle.Alert)
UALertViewを作成するよりも、プロキシを指定する必要はありません.初期化中にボタンを指定する必要もありません.ただし、3番目のパラメータに注意して、選択されたのはダイアログスタイルですか?それともプルダウンメニュースタイルですか?UALertActionの例を作成することにより、動作ボタンをコントローラに追加することができます.UALertActionは、タイトル文字列、スタイル、およびユーザがこの動作を選択したときに実行されるコードブロックから構成される.UALert ActionsStyleを通じて、以下の3つの動作スタイルを選択できます.通常、キャンセル、警告の3つがあります.UALertViewを作成する際に作成したボタン効果を実現するためには、この二つのアクションボタンを作成してコントローラに追加すればいいです.
Objective-Cバージョン:
1
2
3
4
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@
" "
style:UIAlertActionStyleCancel handler:nil];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@
" "
style:UIAlertActionStyleDefault handler:nil];
[alertController addAction:cancelAction];
[alertController addAction:okAction];
swiftバージョン:1
2
3
4
var
cancelAction = UIAlertAction(title:
" "
, style: UIAlertActionStyle.Cancel, handler: nil)
var
okAction = UIAlertAction(title:
" "
, style: UIAlertActionStyle.Default, handler: nil)
alertController.addAction(cancelAction)
alertController.addAction(okAction)
最後に、このダイアログビューのコントローラを表示するだけでいいです.Objective-Cバージョン:
1
[self presentViewController:alertController animated:YES completion:nil];
swiftバージョン:1
self.presentViewController(alertController, animated:
true
, completion: nil)
UAlert Controllerデフォルトスタイルボタンの表示の順序は、ダイアログコントローラに追加される順序によって異なります.一般的には、アップルの公式設定による「iOSユーザインタフェースガイド」は、2つのボタンがあるダイアログで、キャンセルボタンを左に置くべきです.注意したいのですが、キャンセルボタンは唯一です.第二のキャンセルボタンを追加すれば、次のような運行時に異常が発生します.
*Terminating ap due to uncagt exception‘NSInternal InconsistencyException’、reason:“UALert Controller can only have one action with a style of UALertAction Style Cance”
異常情報は簡潔で明瞭であり、ここでは詳しく説明しない.
「警告」様式
何が「警告」の形ですか?私たちはこの問題に慌てずに答えます.まず、以下の「警告」様式の簡単な例を見てみます.この例では、前の例の「はい」ボタンを「リセット」ボタンに置き換えます.
Objective-Cバージョン:
1
2
UIAlertAction *resetAction = [UIAlertAction actionWithTitle:@
" "
style:UIAlertActionStyleDestructive handler:nil];
[alertController addAction:resetAction];
swiftバージョン:1
2
var
resetAction = UIAlertAction(title:
" "
, style: UIAlertActionStyle.Destructive, handler: nil)
alertController.addAction(resetAction)
「警告」様式私たちが追加した「リセット」ボタンが赤に変わったことが分かります.アップルの公式の定義によると、「警告」のボタンは、データを変更または削除する可能性がある操作に使われます.そのため、赤色の目立つ表示を使ってユーザーに警告しています.