@@ -24,13 +24,13 @@ pod 'IQKeyboardManager'
2424
2525说是架构分析,其实只是对 [ IQKeyboardManager] ( https://github.com/hackiftekhar/IQKeyboardManager ) 中包含的类以及文件有一个粗略地了解,研究一下这个项目的层级是什么样的。
2626
27- ![ IQKeyboardManager-Hierarchy] ( media/14658174011193 /IQKeyboardManager-Hierarchy.png)
27+ ![ IQKeyboardManager-Hierarchy] ( images /IQKeyboardManager-Hierarchy.png)
2828
2929整个项目中最核心的部分就是 ` IQKeyboardManager ` 这个类,它负责** 管理键盘出现或者隐藏时视图移动的距离** ,是整个框架中最核心的部分。
3030
3131在这个框架中还有一些用于支持 IQKeyboardManager 的分类,以及显示在键盘上面的 IQToolBar:
3232
33- ![ IQToolBa] ( media/14658174011193 /IQToolBar.png)
33+ ![ IQToolBa] ( images /IQToolBar.png)
3434
3535使用红色标记的部分就是 ` IQToolBar ` ,左侧的按钮可以在不同的 ` UITextField ` 之间切换,中间的文字是 ` UITextField.placeholderText ` ,右边的 ` Done ` 应该就不需要解释了。
3636
@@ -197,7 +197,7 @@ UITextFieldTextDidEndEditingNotification
197197
198198然后运行工程,在 Demo 中点击一个 ` UITextField `
199199
200- ![ easiest-integration-demo] ( media/14658174011193 /easiest-integration-demo.png)
200+ ![ easiest-integration-demo] ( images /easiest-integration-demo.png)
201201
202202上面的操作会打印出如下所示的 Log:
203203
@@ -253,7 +253,7 @@ IQKeyboardManager: ****** keyboardWillShow: ended ******
253253+ 指示当前 ` UITextField ` 的 placeholder
254254+ Done Button
255255
256- ![ IQToolBarIte] ( media/14658174011193 /IQToolBarItem.png)
256+ ![ IQToolBarIte] ( images /IQToolBarItem.png)
257257
258258
259259> 这些 item 都是 ` IQBarButtonItem ` 的子类
@@ -380,7 +380,7 @@ _topViewBeginRect = _rootViewController.view.frame;
380380
381381通过点击 ` IQToolBar ` 上面的 done 按钮,键盘就会隐藏:
382382
383- ![ IQKeyboardManager-hide-keyboard] ( media/14658174011193 /IQKeyboardManager-hide-keyboard.png)
383+ ![ IQKeyboardManager-hide-keyboard] ( images /IQKeyboardManager-hide-keyboard.png)
384384
385385键盘隐藏的过程中会依次调用下面的三个方法:
386386
@@ -433,13 +433,13 @@ _startingContentOffset = CGPointZero;
433433
434434因为框架的功能是基于通知实现的,所以通知的时序至关重要,在 ` IQKeyboardManagerConstants.h ` 文件中详细地描述了在编辑 ` UITextField ` 的过程中,通知触发的先后顺序。
435435
436- ![ notification-IQKeyboardManage] ( media/14658174011193 /notification-IQKeyboardManager.png)
436+ ![ notification-IQKeyboardManage] ( images /notification-IQKeyboardManager.png)
437437
438438> 上图准确说明了通知发出的时机,透明度为 50% 的部分表示该框架没有监听这个通知。
439439
440440而 ` UITextView ` 的通知机制与 ` UITextField ` 略有不同:
441441
442- ![ UITextView-Notification-IQKeyboardManage] ( media/14658174011193 /UITextView-Notification-IQKeyboardManager.png)
442+ ![ UITextView-Notification-IQKeyboardManage] ( images /UITextView-Notification-IQKeyboardManager.png)
443443
444444当 Begin Editing 这个事件发生时,` UITextView ` 的通知机制会先发出 ` UIKeyboardWillShowNotification ` 通知,而 ` UITextField ` 会先发出 ` UITextFieldTextDidBeginEditingNotification ` 通知。
445445
0 commit comments