ZYKeyboardUtilはキーボードでの入力をカバーしてくれるようになりました.
2835 ワード
Demo住所:https://github.com/liuzhiyi1992/ZYKeyboardUtil 私のブログの原文:http://zyden.vicp.cc/zykeyboardutil/転載を歓迎します.出所を明記してください.ありがとうございます.
キーボードは入力コントロールやボタンを隠します.日常のアプリの開発では間に合わないので、様々な状況を考慮してUIの様々な入れ子が作られています.最後に、傍受を登録して指定のキーボード情報を取得します.キーボード処理ツール類のZYKeyboardUtilを通じて、複雑さを避けることができます.Blockを利用して、キーボードで問題を覆い隠すことができます.
主な対応:横向きスクリーンキーボードが入力コントロールを遮る問題 サードパーティキーボードが複数回起動するピット ビュー多層ネスト内入力コントロール処理 単一ページ内の複数の入力コントロール処理 ZYKeyboardUtilはLazy方式でキーボードを登録して傍受者に通知し、一つのBlockは全部自動的にキーボード遮蔽イベント(処理/回復)を処理し、また二つのカスタム動作Blockを付属して使用者自身で処理する.内部クラスKeyboardInfoは、各処理に必要なキーボード情報をmodelとして記憶している.
animewhenKeybodUtilを設定すると、キーボードの入力コントロールを遮断する問題が発生します.付属のカスタム動作Blockでは、animateWhenKeyboardApparBlockがキーボード展示時の処理として、animateWhenKeyboardDispar Blockがキーボードを閉じる時の処理として、print Keyboard InfoBlockが必要な時にキーボード情報を出力するために使用されます.Apple BlockとDisplapearBlockはUID View Animationに統一的に加入しています.使う時は必要なインターフェースの変化を編纂するだけでいいです.
縦横スクリーンテスト:
縦横スクリーンテスト
入力コントロールの多層ネスト:
入力コントロール多層ネスト
サードパーティのキーボードはサブポップアップの問題に分けられます.
サードパーティのキーボードはサブポップアップの問題です.
どう使いますか
我々のcontrollerでは、ZYKeyboardオブジェクトを作成し、ページ全体で機能を実現する時間帯に存在させるために、彼を保持してください.
animateWhenKeyboardApparAutomatic AnimBlockを設定すれば、キーボードの昇降によって入力コントロールの問題を遮り、コントロールのreign First Resonterが自動的に元に戻ります.BlockでパラメータkeyboardUtilを利用してadapptiveView HandleWithControllerを呼び出すだけで、最初のパラメータは現在のページcontrolerで、二つ目のパラメータは可変パラメータを受信し、現在のページ内の単一/複数の入力コントロールまたは入力コントロールを包むViewです.
忘れないように注意してください.weakSelfによってBlockの循環を回避します.weak View Controller*weakSelf=self;
キーボードは入力コントロールやボタンを隠します.日常のアプリの開発では間に合わないので、様々な状況を考慮してUIの様々な入れ子が作られています.最後に、傍受を登録して指定のキーボード情報を取得します.キーボード処理ツール類のZYKeyboardUtilを通じて、複雑さを避けることができます.Blockを利用して、キーボードで問題を覆い隠すことができます.
主な対応:
animewhenKeybodUtilを設定すると、キーボードの入力コントロールを遮断する問題が発生します.付属のカスタム動作Blockでは、animateWhenKeyboardApparBlockがキーボード展示時の処理として、animateWhenKeyboardDispar Blockがキーボードを閉じる時の処理として、print Keyboard InfoBlockが必要な時にキーボード情報を出力するために使用されます.Apple BlockとDisplapearBlockはUID View Animationに統一的に加入しています.使う時は必要なインターフェースの変化を編纂するだけでいいです.
縦横スクリーンテスト:
縦横スクリーンテスト
入力コントロールの多層ネスト:
入力コントロール多層ネスト
サードパーティのキーボードはサブポップアップの問題に分けられます.
サードパーティのキーボードはサブポップアップの問題です.
どう使いますか
我々のcontrollerでは、ZYKeyboardオブジェクトを作成し、ページ全体で機能を実現する時間帯に存在させるために、彼を保持してください.
self.keyboardUtil = [[ZYKeyboardUtil alloc] init];
キーボードイベントの処理:animateWhenKeyboardApparAutomatic AnimBlockを設定すれば、キーボードの昇降によって入力コントロールの問題を遮り、コントロールのreign First Resonterが自動的に元に戻ります.BlockでパラメータkeyboardUtilを利用してadapptiveView HandleWithControllerを呼び出すだけで、最初のパラメータは現在のページcontrolerで、二つ目のパラメータは可変パラメータを受信し、現在のページ内の単一/複数の入力コントロールまたは入力コントロールを包むViewです.
__weak ViewController *weakSelf = self;
[_keyboardUtil setAnimateWhenKeyboardAppearAutomaticAnimBlock:^(ZYKeyboardUtil *keyboardUtil) {
[keyboardUtil adaptiveViewHandleWithController:weakSelf adaptiveView:weakSelf.inputViewOne, weakSelf.inputViewSecond, weakSelf.inputViewThird, weakSelf.inputViewFourth, nil];
}];
以下は追加のカスタム動作ブロックです.//
[_keyboardUtil setAnimateWhenKeyboardAppearBlock:^(int appearPostIndex, CGRect keyboardRect, CGFloat keyboardHeight, CGFloat keyboardHeightIncrement) {
//do something when keyboard appear
}];
apparPostIndexは、キーボードがサブ展開されている時(サードパーティキーボードはサブ展開されます)に、現在同じ展開の何回目の上昇を記録します.今回展開されたキーボード位置のRectです.keyboard Heightは今回の展開後のキーボードの高さです.keyboard Height Incrementは今回展開するキーボードの増分です.(サードパーティキーボードのサブ展開に対応するキー)//
[_keyboardUtil setAnimateWhenKeyboardDisappearBlock:^(CGFloat keyboardHeight) {
//do something to restor UI when keyboard dismiss
}];
keyboard Heightはキーボードが閉じる前の高さです.//
[_keyboardUtil setPrintKeyboardInfoBlock:^(ZYKeyboardUtil *keyboardUtil, KeyboardInfo *keyboardInfo) {
//you can get keyboardInfo here when animation ended
}];
このBlockのパラメータではキーボード情報keyboardInfoが得られます.忘れないように注意してください.weakSelfによってBlockの循環を回避します.weak View Controller*weakSelf=self;