iOS開發 UI高階篇(六)鍵盤處理

2022-06-02 07:36:06 字數 1832 閱讀 8262

一、鍵盤通知

我們經常需要在鍵盤彈出或者隱藏的時候做一些特定的操作,因此需要監聽鍵盤的狀態

鍵盤狀態改變的時候,系統會發出一些特定的通知

uikeyboardwillshownotification // 鍵盤即將顯示

uikeyboarddidshownotification // 鍵盤顯示完畢

uikeyboardwillhidenotification // 鍵盤即將隱藏

uikeyboarddidhidenotification // 鍵盤隱藏完畢

uikeyboardwillchangeframenotification // 鍵盤的位置尺寸即將發生改變

uikeyboarddidchangeframenotification // 鍵盤的位置尺寸改變完畢

系統發出鍵盤通知時,會附帶一下跟鍵盤有關的額外資訊(字典),字典常見的key如下:

uikeyboardframebeginuserinfokey // 鍵盤剛開始的frame

uikeyboardframeenduserinfokey // 鍵盤最終的frame(動畫執行完畢後)

uikeyboardanimationdurationuserinfokey // 鍵盤動畫的時間

uikeyboardanimationcurveuserinfokey // 鍵盤動畫的執行節奏(快慢)

點選text field彈出文字時  讓text field始終跟著鍵盤移動,並且貼著鍵盤上面

正因為鍵盤狀態改變的時候,系統會發出一些特定的通知,我們可以監聽鍵盤的狀態

- (void

)viewdidload

- (void

)dealloc

實現方法:

/*

* * 監聽鍵盤的frame即將發生改變的時候呼叫 */

- (void)keyboardwillchange:(nsnotification *)note];}

//觸控螢幕退出鍵盤

- (void)touchesbegan:(nsset *)touches withevent:(uievent *)event

userinfo是系統提供的字典屬性

@property (nullable, readonly, copy) nsdictionary *userinfo;

列印的結果如下:

uikeyboardanimationcurveuserinfokey = 7; // 動畫曲線動畫

uikeyboardanimationdurationuserinfokey = "0.25"; // 動畫時間

uikeyboardboundsuserinfokey = "nsrect: , }"; // 鍵盤bounds

uikeyboardcenterbeginuserinfokey = "nspoint: "; // 開始鍵盤的居中位置

uikeyboardcenterenduserinfokey = "nspoint: "; // 結束鍵盤的居中位置

uikeyboardframebeginuserinfokey = "nsrect: , }";// 鍵盤開始彈出的frame

uikeyboardframeenduserinfokey = "nsrect: , }";// 退出鍵盤的frame

uikeyboardislocaluserinfokey = 1;

iOS開發UI篇 UIScrollView控制項介紹

ios開發ui篇 uiscrollview控制項介紹 一 知識點簡單介紹 1.uiscrollview控制項是什麼?1 移動裝置的螢幕 大 小是極其有限的,因此直接展 示在 使用者眼前的內容也相當有限 2 當展 示的內容較多,超出 乙個螢幕時,使用者可通過滾動 手勢來檢視螢幕以外的內容 3 普通的u...

ios開發 UI高階 HTTP協議

1 http協議的概念 全稱 超文字傳輸協議 瀏覽器和伺服器之間的通訊規則 http協議永遠都是客戶端發起請求,伺服器回送響應。2 響應包 請求包 客戶端傳送乙個http請求,是向伺服器提交了乙個http請求包 伺服器收到請求之後,向客戶端回應乙個http響應包 3 http請求常用方法 get 是...

ios開發 UI高階 間距設定

cell 之間的間隔 void setframe cgrect frame 如果我們發現設定了屬性的frame,但是屬性的frame並沒有變化,那麼就應該考慮系統的系統調節frame屬性 void awakefromnib 顯示高度等於顯示寬度乘以高度除以寬度 cgfloat picturew ma...