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需要另外設定😣





6會員
35內容數
紀錄iOS開發上遇到的問題或是一些流程筆記。主要都是Swift。
留言0
查看全部
發表第一個留言支持創作者!
Michelle Chen的沙龍 的其他內容
使用者回報的超級奇怪線上問題,用數字鍵盤(NumberPad)更改欄位時,送出後尾數都會消失。例如:30 ⭢ 3,52 ⭢ 5。 尋尋覓覓了兩天終於被我找到這篇,apple的奇葩的bug 重現條件 iOS17 手機設定是繁體中文語系 前一個用過的鍵盤是Cangjie倉頡 or Suchen
這篇文章探討瞭如何在iOS應用程式中客製化Alert,包括改變字體大小、內嵌連結以及讓Alert的高度隨著字數增長並提供scroll操作。同時使用SwiftUI進行客製化,並介紹瞭解決高度超出範圍後文字捲動與scrollView固定高度的方法。
本文介紹瞭如何在SwiftUI中調整元件的對齊方式,包括置中、向左/向右/向上/向下對齊的方法。透過調整HStack、VStack以及frame的maxWidth、maxHeight和alignment屬性,可以達到想要的對齊效果。
瞭解如何在Xcode15及以上使用Logger進行更好的程式debug。Logger可以更好的組織Log,但也有一些缺點需要注意。本文將介紹Logger的基本使用方式,以及一些注意事項。
UIEdgeInsets 是一個結構體,用來表示矩形的邊距。它通常在視圖佈局中使用,用於修改視圖的框架(frame)。邊距值可以是正數或負數,這會對矩形的大小產生不同的影響。 UIEdgeInsets 結構體 UIEdgeInsets 結構體包含四個屬性: top:矩形頂部的邊距 left:
iOS15推出了新的按鈕外觀設定功能,讓設定變得更加直觀。使用不同的圓角設定和圖片位置可以輕鬆創建不同風格的按鈕。另外,新的選取效果變化功能也讓按鈕設計更加靈活。本文將介紹這些新功能的使用方法和效果。
使用者回報的超級奇怪線上問題,用數字鍵盤(NumberPad)更改欄位時,送出後尾數都會消失。例如:30 ⭢ 3,52 ⭢ 5。 尋尋覓覓了兩天終於被我找到這篇,apple的奇葩的bug 重現條件 iOS17 手機設定是繁體中文語系 前一個用過的鍵盤是Cangjie倉頡 or Suchen
這篇文章探討瞭如何在iOS應用程式中客製化Alert,包括改變字體大小、內嵌連結以及讓Alert的高度隨著字數增長並提供scroll操作。同時使用SwiftUI進行客製化,並介紹瞭解決高度超出範圍後文字捲動與scrollView固定高度的方法。
本文介紹瞭如何在SwiftUI中調整元件的對齊方式,包括置中、向左/向右/向上/向下對齊的方法。透過調整HStack、VStack以及frame的maxWidth、maxHeight和alignment屬性,可以達到想要的對齊效果。
瞭解如何在Xcode15及以上使用Logger進行更好的程式debug。Logger可以更好的組織Log,但也有一些缺點需要注意。本文將介紹Logger的基本使用方式,以及一些注意事項。
UIEdgeInsets 是一個結構體,用來表示矩形的邊距。它通常在視圖佈局中使用,用於修改視圖的框架(frame)。邊距值可以是正數或負數,這會對矩形的大小產生不同的影響。 UIEdgeInsets 結構體 UIEdgeInsets 結構體包含四個屬性: top:矩形頂部的邊距 left:
iOS15推出了新的按鈕外觀設定功能,讓設定變得更加直觀。使用不同的圓角設定和圖片位置可以輕鬆創建不同風格的按鈕。另外,新的選取效果變化功能也讓按鈕設計更加靈活。本文將介紹這些新功能的使用方法和效果。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
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
修復重要錯誤及安全性|Apple建議即update Apple稱新版本包含「重要錯誤修復和安全性更新」,適用於從 iPhone XS 及更新型號以上所有 iPhone,Apple 建議所有 iPhone 用戶安裝此最新軟體修補程式。 用戶只需要到「設定」點選的「常用」,然後選擇「軟體更新」,即可
Thumbnail
很多 Apple 用戶都很喜歡透過內建備忘錄App來筆記, 要是不小心在 iOS 或 iPadOS 備忘錄內紀錄不見、寫錯字或打錯字,要怎麼替 iPad 或 iPhone 備忘錄還原上一步呢? 要是不小心在備忘錄內消失紀錄, 可以利用本篇分享的四招 iPad iPhone備忘錄還原上一步技
Thumbnail
這篇文章探討瞭如何在iOS應用程式中客製化Alert,包括改變字體大小、內嵌連結以及讓Alert的高度隨著字數增長並提供scroll操作。同時使用SwiftUI進行客製化,並介紹瞭解決高度超出範圍後文字捲動與scrollView固定高度的方法。
Thumbnail
iPhone 最新作業系統 iOS 18 控制中心大更新,預設有常用功能、音樂播放器、連線控制三個頁面,並允許使用者自訂頁面,可以直接在控制中心管理所需的功能、調整位置和選擇尺寸。
Thumbnail
一般用戶不建議升級至 iOS 18 測試版,因為這個版本可能存在大量Bug和不穩定因素,導致如 LINE 功能錯誤或銀行 App 閃退等問題。Apple 釋出的 iOS 18 Beta 測試版本主要供開發者使用,並非穩定的正式版。建議等待正式版於9月推出後再考慮更新。
Thumbnail
10個今年WWDC,蘋果把AI功能導入IOS之後的新功能
Thumbnail
本文介紹如何使用UINavigationBarAppearance調整四種場景下的UI外觀,並探討客製化返回鍵UI又保留返回手勢的做法,可以有效地客製化NavigationBar的外觀,並避免一些NG作法。
Thumbnail
UI(使用者介面)設計對於用戶體驗至關重要。一個好的UI設計可以讓用戶輕鬆地與應用互動,而糟糕的設計則可能導致用戶感到困惑甚至沮喪。本文將探討五個UI 設計在App開發中常見的錯誤,並提供相應的解決策略。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
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
修復重要錯誤及安全性|Apple建議即update Apple稱新版本包含「重要錯誤修復和安全性更新」,適用於從 iPhone XS 及更新型號以上所有 iPhone,Apple 建議所有 iPhone 用戶安裝此最新軟體修補程式。 用戶只需要到「設定」點選的「常用」,然後選擇「軟體更新」,即可
Thumbnail
很多 Apple 用戶都很喜歡透過內建備忘錄App來筆記, 要是不小心在 iOS 或 iPadOS 備忘錄內紀錄不見、寫錯字或打錯字,要怎麼替 iPad 或 iPhone 備忘錄還原上一步呢? 要是不小心在備忘錄內消失紀錄, 可以利用本篇分享的四招 iPad iPhone備忘錄還原上一步技
Thumbnail
這篇文章探討瞭如何在iOS應用程式中客製化Alert,包括改變字體大小、內嵌連結以及讓Alert的高度隨著字數增長並提供scroll操作。同時使用SwiftUI進行客製化,並介紹瞭解決高度超出範圍後文字捲動與scrollView固定高度的方法。
Thumbnail
iPhone 最新作業系統 iOS 18 控制中心大更新,預設有常用功能、音樂播放器、連線控制三個頁面,並允許使用者自訂頁面,可以直接在控制中心管理所需的功能、調整位置和選擇尺寸。
Thumbnail
一般用戶不建議升級至 iOS 18 測試版,因為這個版本可能存在大量Bug和不穩定因素,導致如 LINE 功能錯誤或銀行 App 閃退等問題。Apple 釋出的 iOS 18 Beta 測試版本主要供開發者使用,並非穩定的正式版。建議等待正式版於9月推出後再考慮更新。
Thumbnail
10個今年WWDC,蘋果把AI功能導入IOS之後的新功能
Thumbnail
本文介紹如何使用UINavigationBarAppearance調整四種場景下的UI外觀,並探討客製化返回鍵UI又保留返回手勢的做法,可以有效地客製化NavigationBar的外觀,並避免一些NG作法。
Thumbnail
UI(使用者介面)設計對於用戶體驗至關重要。一個好的UI設計可以讓用戶輕鬆地與應用互動,而糟糕的設計則可能導致用戶感到困惑甚至沮喪。本文將探討五個UI 設計在App開發中常見的錯誤,並提供相應的解決策略。