iOS15的鍵盤佈局問題與解決方案

更新於 發佈於 閱讀時間約 1 分鐘

神奇的iOS15+xib/storyboard的bug

iOS15新出了一個UIKeyboardLayout Guide,簡化原本很複雜的鍵盤升降推元件。
Before
1.先去註冊鍵盤升降的通知事件

NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: UIResponder.keyboardWillHideNotification, object: nil)
  1. 去調整元件的autolayout
@objc 
private func keyboardWillShow(notification: NSNotification) {
  if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
      textViewBottomConstraint.constant = keyboardSize.height - buttonViewHeightConstraint.constant
    }
}
    
@objc
private func keyboardWillHide(notification: NSNotification) {
   textViewBottomConstraint.constant = 10
}


3. 保持好習慣,離開controller前要註銷通知

 NotificationCenter.default.removeObserver(self)

總共要三個步驟很累🛌

After
元件的bottomAnchor去對KeyboardLayoutGuide.topAnchor

 textView.bottomAnchor.constraint(equalTo: self.view.keyboardLayoutGuide.topAnchor, constant: -60.0).isActive = true

搭拉!結束✨



設定Xib

如果想要在Xib上直接拉怎麼設定?

先去View的Layout Guides>Keyboard 打勾

raw-image


就會長出Keyboard Layout guide

raw-image

把TextView.Bottom對齊KeyboardLayoutGuide.Top就完成

raw-image


然而事情都不這麼簡單就結束...🥹

跑在模擬器上的iOS17.0+iPhone 15 Pro Max

正常運作


iOS17鍵盤升降

iOS17鍵盤升降


同樣的code跑在iOS15.5+iPhone8

出事了🥹textView整個飛掉

ios15.5

ios15.5

因為連TextView都出不來,感覺像是他view起來的時候抓不到或抓錯keyboardGuide的layout

所以我這邊改成一開始先把textView.bottom對準view(safeArea)的bottom,確保他一開始的bottom位置畫對,等viewDidLoad後再改成對準KeyboardLayoutGuide.top(超麻煩)

TextView先對Safe Area的bottom

TextView先對Safe Area的bottom

viewDidload實在改成去對keyboardLayoutGuide

textViewBottom.isActive = false

view.keyboardLayoutGuide.topAnchor.constraint(equalTo: textView.bottomAnchor, constant: 50.0).isActive = true


成功!


ios15

ios15


另外有測試如果純code+iOS15是沒有問題的

只有iOS15+xib需要另外設定😣





留言
avatar-img
留言分享你的想法!
avatar-img
Michelle Chen的沙龍
8會員
34內容數
紀錄iOS開發上遇到的問題或是一些流程筆記。主要都是Swift。
Michelle Chen的沙龍的其他內容
2024/08/07
使用者回報的超級奇怪線上問題,用數字鍵盤(NumberPad)更改欄位時,送出後尾數都會消失。例如:30 ⭢ 3,52 ⭢ 5。 尋尋覓覓了兩天終於被我找到這篇,apple的奇葩的bug 重現條件 iOS17 手機設定是繁體中文語系 前一個用過的鍵盤是Cangjie倉頡 or Suchen
2024/08/07
使用者回報的超級奇怪線上問題,用數字鍵盤(NumberPad)更改欄位時,送出後尾數都會消失。例如:30 ⭢ 3,52 ⭢ 5。 尋尋覓覓了兩天終於被我找到這篇,apple的奇葩的bug 重現條件 iOS17 手機設定是繁體中文語系 前一個用過的鍵盤是Cangjie倉頡 or Suchen
2024/07/03
這篇文章探討瞭如何在iOS應用程式中客製化Alert,包括改變字體大小、內嵌連結以及讓Alert的高度隨著字數增長並提供scroll操作。同時使用SwiftUI進行客製化,並介紹瞭解決高度超出範圍後文字捲動與scrollView固定高度的方法。
Thumbnail
2024/07/03
這篇文章探討瞭如何在iOS應用程式中客製化Alert,包括改變字體大小、內嵌連結以及讓Alert的高度隨著字數增長並提供scroll操作。同時使用SwiftUI進行客製化,並介紹瞭解決高度超出範圍後文字捲動與scrollView固定高度的方法。
Thumbnail
2024/07/02
本文介紹瞭如何在SwiftUI中調整元件的對齊方式,包括置中、向左/向右/向上/向下對齊的方法。透過調整HStack、VStack以及frame的maxWidth、maxHeight和alignment屬性,可以達到想要的對齊效果。
Thumbnail
2024/07/02
本文介紹瞭如何在SwiftUI中調整元件的對齊方式,包括置中、向左/向右/向上/向下對齊的方法。透過調整HStack、VStack以及frame的maxWidth、maxHeight和alignment屬性,可以達到想要的對齊效果。
Thumbnail
看更多
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
本文介紹了使用KeyboardLayoutGuide的方法,以及在不同iOS版本和設備上遇到的佈局問題。透過調整TextView的底部對齊方式,成功解決了在模擬器和真實設備上出現的錯誤,提供了有用的建議給開發者。本文還探討了為何在iOS15與Xib的組合使用中會出現問題,以及解決方案。
Thumbnail
本文介紹了使用KeyboardLayoutGuide的方法,以及在不同iOS版本和設備上遇到的佈局問題。透過調整TextView的底部對齊方式,成功解決了在模擬器和真實設備上出現的錯誤,提供了有用的建議給開發者。本文還探討了為何在iOS15與Xib的組合使用中會出現問題,以及解決方案。
Thumbnail
很多 Apple 用戶都很喜歡透過內建備忘錄App來筆記, 要是不小心在 iOS 或 iPadOS 備忘錄內紀錄不見、寫錯字或打錯字,要怎麼替 iPad 或 iPhone 備忘錄還原上一步呢? 要是不小心在備忘錄內消失紀錄, 可以利用本篇分享的四招 iPad iPhone備忘錄還原上一步技
Thumbnail
很多 Apple 用戶都很喜歡透過內建備忘錄App來筆記, 要是不小心在 iOS 或 iPadOS 備忘錄內紀錄不見、寫錯字或打錯字,要怎麼替 iPad 或 iPhone 備忘錄還原上一步呢? 要是不小心在備忘錄內消失紀錄, 可以利用本篇分享的四招 iPad iPhone備忘錄還原上一步技
Thumbnail
iOS 17.5 正式版上架更新日預測| iPhone 早前在4月初發表了開發者測試版 iOS 17.5 Beta , 為手機帶來很多新功能及細節改良, 那一般用戶幾時才可以正式用到 iOS 17.5 ?當中又有甚麼吸引、實用新功能呢? 「天氣」桌面工具 iOS 17.5 微調了桌
Thumbnail
iOS 17.5 正式版上架更新日預測| iPhone 早前在4月初發表了開發者測試版 iOS 17.5 Beta , 為手機帶來很多新功能及細節改良, 那一般用戶幾時才可以正式用到 iOS 17.5 ?當中又有甚麼吸引、實用新功能呢? 「天氣」桌面工具 iOS 17.5 微調了桌
Thumbnail
修復重要錯誤及安全性|Apple建議即update Apple稱新版本包含「重要錯誤修復和安全性更新」,適用於從 iPhone XS 及更新型號以上所有 iPhone,Apple 建議所有 iPhone 用戶安裝此最新軟體修補程式。 用戶只需要到「設定」點選的「常用」,然後選擇「軟體更新」,即可
Thumbnail
修復重要錯誤及安全性|Apple建議即update Apple稱新版本包含「重要錯誤修復和安全性更新」,適用於從 iPhone XS 及更新型號以上所有 iPhone,Apple 建議所有 iPhone 用戶安裝此最新軟體修補程式。 用戶只需要到「設定」點選的「常用」,然後選擇「軟體更新」,即可
Thumbnail
很多 Apple 用戶都很喜歡透過內建備忘錄App來筆記, 要是不小心在 iOS 或 iPadOS 備忘錄內紀錄不見、寫錯字或打錯字,要怎麼替 iPad 或 iPhone 備忘錄還原上一步呢? 要是不小心在備忘錄內消失紀錄, 可以利用本篇分享的四招 iPad iPhone備忘錄還原上一步技
Thumbnail
很多 Apple 用戶都很喜歡透過內建備忘錄App來筆記, 要是不小心在 iOS 或 iPadOS 備忘錄內紀錄不見、寫錯字或打錯字,要怎麼替 iPad 或 iPhone 備忘錄還原上一步呢? 要是不小心在備忘錄內消失紀錄, 可以利用本篇分享的四招 iPad iPhone備忘錄還原上一步技
Thumbnail
這篇文章探討瞭如何在iOS應用程式中客製化Alert,包括改變字體大小、內嵌連結以及讓Alert的高度隨著字數增長並提供scroll操作。同時使用SwiftUI進行客製化,並介紹瞭解決高度超出範圍後文字捲動與scrollView固定高度的方法。
Thumbnail
這篇文章探討瞭如何在iOS應用程式中客製化Alert,包括改變字體大小、內嵌連結以及讓Alert的高度隨著字數增長並提供scroll操作。同時使用SwiftUI進行客製化,並介紹瞭解決高度超出範圍後文字捲動與scrollView固定高度的方法。
Thumbnail
iPhone 最新作業系統 iOS 18 控制中心大更新,預設有常用功能、音樂播放器、連線控制三個頁面,並允許使用者自訂頁面,可以直接在控制中心管理所需的功能、調整位置和選擇尺寸。
Thumbnail
iPhone 最新作業系統 iOS 18 控制中心大更新,預設有常用功能、音樂播放器、連線控制三個頁面,並允許使用者自訂頁面,可以直接在控制中心管理所需的功能、調整位置和選擇尺寸。
Thumbnail
一般用戶不建議升級至 iOS 18 測試版,因為這個版本可能存在大量Bug和不穩定因素,導致如 LINE 功能錯誤或銀行 App 閃退等問題。Apple 釋出的 iOS 18 Beta 測試版本主要供開發者使用,並非穩定的正式版。建議等待正式版於9月推出後再考慮更新。
Thumbnail
一般用戶不建議升級至 iOS 18 測試版,因為這個版本可能存在大量Bug和不穩定因素,導致如 LINE 功能錯誤或銀行 App 閃退等問題。Apple 釋出的 iOS 18 Beta 測試版本主要供開發者使用,並非穩定的正式版。建議等待正式版於9月推出後再考慮更新。
Thumbnail
10個今年WWDC,蘋果把AI功能導入IOS之後的新功能
Thumbnail
10個今年WWDC,蘋果把AI功能導入IOS之後的新功能
Thumbnail
本文介紹如何使用UINavigationBarAppearance調整四種場景下的UI外觀,並探討客製化返回鍵UI又保留返回手勢的做法,可以有效地客製化NavigationBar的外觀,並避免一些NG作法。
Thumbnail
本文介紹如何使用UINavigationBarAppearance調整四種場景下的UI外觀,並探討客製化返回鍵UI又保留返回手勢的做法,可以有效地客製化NavigationBar的外觀,並避免一些NG作法。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News