Vuncloud 部落格
← 返回機房手記專欄

摺疊屏 iPhone 來了,現有 iOS App 會不會被淘汰?哪些應用需要重做介面?

iPhone Duo · 外屏 5.4 英寸 · 內屏 7.6 英寸 · iOS 27.1約 11 分鐘閱讀

木桌上平放的 iPhone,對應摺疊屏 iPhone Duo 開售前現有 iOS App 要不要重做介面

蘋果已在 2026 年 9 月 9 日釋出第一款摺疊 iPhone,名字是 iPhone Duo。預購從 10 月 16 日太平洋時間凌晨 5 點開始,北京時間當天 20:00。首批包括中國在內的 70 多個國家和地區,10 月 23 日開售;另有 28 個地區是 10 月 30 日。出廠系統是 iOS 27.1。美國起步價 1999 美元(256GB)。規格以 蘋果新聞稿為準。

今天要回答的不是「要不要買」,而是已經在 App Store 裡的 iOS App:會不會因為摺疊屏被淘汰,哪些介面必須改。 開發者文件寫得很直:所有 App 都能在 Duo 上執行。用 iOS 27 及之後的 SDK 構建的,會隨摺疊改變尺寸。合上回到外屏,開啟鋪進內屏。被拉長、裁切或放錯位置的,是寫死螢幕尺寸、固定方向、按機型假設佈局的那些介面。

兩塊屏比例相同,內容可以按比例縮放,所以很多列表和表單不用重畫。內屏 7.6 英寸,比 iPhone 18 Pro Max 大 50%;外屏 5.4 英寸,面積大約是 iPhone 18 Pro 的 90%,合上接近護照大小。同一套單欄放大之後,資訊流會空,分欄才用得上這塊屏。

我們 9 月 9 日的手記按當天流傳的 Ultra 寫了硬體。產品名以新聞稿的 iPhone Duo 為準。這篇只談現有 App 的介面。

10.23
首批開售(含中國)
5.4 / 7.6
外屏與內屏(英寸)
iOS 27.1
出廠系統,鋪滿內屏的那一檔
一句話

現有 iOS App 不會被淘汰。業務不用重寫。要重做的是把「螢幕永遠是那一個尺寸」寫進佈局的介面:寫死寬高、按 phone/pad 分支、自定義欄,以及相機、影片和該在內屏分欄的工作區。

能跑,不等於不用改

蘋果在 Prepare for iPhone Duo 裡把底線寫在第一段:所有 App 都會執行。用 iOS 27 SDK 及以後構建的,開啟時展開到內屏,合上時回到外屏。硬編碼的螢幕尺寸、固定方向和裝置假設會把佈局拉壞。

所以「淘汰」說重了。帳號、API、內購、推送都不因為一塊鉸鏈重寫。使用者 10 月 23 日開啟舊包,行程還在。他看見的可能是內屏正中一塊舊手機視窗,四周是空的。對起步 1999 美元的 7.6 英寸來說,這不是完成。

人機指南也把範圍收窄了:支援各種姿勢,不是為每種摺疊角各畫一版。外屏用 compact 寬,內屏用 regular 寬,就覆蓋了基本姿勢。尺寸變化時不要重做 App,讓現有佈局按可用空間展開。見 Preparing your app for iPhone Duo。

三檔 SDK,決定內屏怎麼用

同一套二進位制,使用者看見的空檔取決於你用哪一版 SDK 編出來。蘋果給的對照是這樣:

構建 SDK 開啟(內屏) 合上(外屏)
iOS 26 及更早 視窗居中,四周留白 內容在狀態列和攝像頭左側
iOS 27 鋪滿大部分內屏,仍避開右側狀態列 隨尺寸回到外屏,空檔比舊 SDK 小
iOS 27.1 及以後 用滿整塊屏;工具欄和標籤欄改到狀態列下方豎排 同一套豎排欄,隨摺疊切換螢幕

Duo 出廠就是 27.1。只為了「能裝上」停在舊 SDK,內屏就是留白。升到 27.1 SDK 之前,先確認內容能跟著欄變成豎排,否則全屏內容會和系統欄重疊。

哪些應用必須改介面

不是按品類一刀切。先在工程裡搜下面這些假設。搜得到,這一屏就要改佈局;搜不到,多半隨系統容器走。

開發者在筆記本前同時看手機螢幕,對應用 Xcode 27.1 檢查 iPhone Duo 上哪些介面要改
先搜寫死尺寸和機型分支,再決定相機、影片和分欄要不要排進 10 月 23 日前的版本。

寫死螢幕尺寸

搜尋 UIScreen.main。摺疊會在一次會話中途改掉 App 的尺寸,而且這個尺寸經常不等於整塊螢幕。

  • UIScreen.main.bounds 改成 view.bounds 或 window.bounds。SwiftUI 用 GeometryReader 或 onGeometryChange。
  • 只在啟動或 viewIsAppearing 讀一次不夠。依賴尺寸的佈局放進 layoutSubviews / viewDidLayoutSubviews,尺寸變化用 viewWillTransition(to:with:)。
  • 縮放用 traitCollection.displayScale 或 @Environment(\.displayScale)。
  • UIWindow(frame: UIScreen.main.bounds) 改成 UIWindow(windowScene:)。不要把一個 UIScreen 存下來。
  • bounds.height == 844 這種已知機型高度表對不上 Duo。

用方向或機型分支

在 Duo 上,裝置方向不能告訴你 App 是寬是高。佈局裡去掉對這些屬性的依賴:UIDevice.current.orientation、statusBarOrientation、interfaceOrientation(包括 windowScene.effectiveGeometry.interfaceOrientation)。要判斷寬大於高,比較手頭空間的寬和高。

有了 Duo,再加上可調整大小的 iPhone 鏡像,一個 iPhone App 可以是任意 size class 組合。內屏應當是 iPad 佈局的自然延伸,而不是另一套產品。

  • 不要用 userInterfaceIdiom == .phone 或 == .pad 選佈局。按 size class 或可用空間選。
  • 不要把 regular 寬當成「這是 iPad」。這段程式碼現在會在 iPhone 內屏上執行。外屏豎持仍是 compact 寬、regular 高,和普通 iPhone 一樣。
  • iPad 分支裡如果還有隻給大屏的死尺寸,內屏會把那套死尺寸原樣跑出來。

自定義欄要變豎排

系統的標籤欄、導航和鎖屏控制,在 27.1 上改到側面、狀態列下面,把豎向空間留給內容。開啟後主螢幕是兩頁,左側是可滾動的 Today View。狀態列收成角落裡的圓形。Dynamic Island 也改成豎在外屏和內屏的側面。

自己畫的頂欄、底欄、懸浮按鈕如果還按「底部一條橫欄」定位,會和豎排系統欄搶邊,或壓住內屏右側的狀態列。自定義欄和全出血畫布用 iOS 27.1 的 ReservedRegion(SwiftUI)或 UIViewReservedRegion(UIKit),把摺痕和攝像頭遮擋留出來。系統分欄會自己躲開摺痕;自己用 HStack / ZStack 拼的不會。

半折時,系統的 arrangement 會把主檢視放到摺痕的一側、次檢視放到另一側。全開或合上、沒有分割型保留區時,overlay 仍是疊在一起。自定義疊層要自己處理這一下。

影片、相機、閱讀、通話

半折時內屏像兩半。媒體、相機、閱讀、視訊通話應把內容放一半、控制放另一半,不要騎在摺痕上。

蘋果自己的相機已經按雙屏做了:外屏看後置攝像頭的自拍預覽(Duo Preview),外屏播放兒童提示動畫,Duo FaceTime 讓旁邊的人用外屏加入。第三方相機、濾鏡、直播如果只有一塊預覽畫布,開啟後主體會被摺痕切開。

全出血圖片和影片用 .scaleAspectFill 或 .aspectRatio(contentMode: .fill) 時,更寬的內屏會裁掉主體。按當前 size class 或寬高比在 fill 和 fit 之間選,或設一個焦點。新聞稿裡 Netflix 把外屏用來刷短片、開啟後用大屏;Zoom 把內屏分成共享內容和與會者。這是改介面的樣子:同一套內容換容器,不是換一套業務。

內屏分欄,外屏單欄

iOS 27 第一次在 iPhone 上做系統 Split View:兩個 App 並排,或同一 App 兩個視窗,例如兩個 Safari。也可以一邊看內容,一邊和 Siri AI 說話,並把一對 App 存下來下次再開。

郵件、文件、Slack 這類工作區,內屏如果還是一條被拉寬的時間線,密度是浪費。SwiftUI 用 NavigationSplitView,UIKit 用 UISplitViewController:內屏側欄或雙欄,外屏收成一欄,和普通 iPhone 上 regular / compact 的切換同一條路徑。網格用偶數欄,摺痕兩邊才切得開。欄寬要在摺疊時仍然看得清。

新聞稿點名 Slack 已經把整個工作區鋪進內屏。沒有 iPad 分欄的協作工具,這是 10 月 23 日前最值得排的一屏,但它仍是佈局,不是重寫訊息同步。

哪些可以先不重做

介面 不改,10 月 23 日會怎樣 要不要重做
設定、表單、系統列表 能用。舊 SDK 內屏留白;新 SDK 單列被拉寬 不用重做。升到 27.1 SDK,確認豎排欄不擋字
已經適配 iPad 的自適應佈局 內屏會走到 regular 寬那條路徑 小改。去掉「regular 寬 = 只有 iPad」
寫死 390/844、UIScreen.main 拉伸、裁切、控制元件錯位 必須改佈局,不必重寫業務
相機、視訊通話、閱讀、全屏影片 主體可能騎在摺痕上,fill 會裁掉人臉 要改這一屏:半折分邊、焦點、安全區
郵件、文件、協作工作區 能用,內屏是一條被拉寬的時間線 建議做分欄。外屏仍是單欄
遊戲、地圖、設計畫布 比例一變就露邊,或裁掉主體和 HUD 要改畫布和安全區,不是換玩法

只在外屏當普通手機用、內屏留白也能接受的內部工具,可以跑。上架主路徑、截圖和推薦位則另說:App Store Connect 可以預覽 iPhone Duo 素材,featuring 提名裡可以寫明支援全部姿勢。那是商店頁,不是另一套程式碼。

不要為合上、開啟、半折各維護三套完全不同的介面。指南的要求是一套佈局隨空間展開。

釋出前怎麼驗

在 Xcode 裡對編碼助手說 get my app ready for iPhone Duo。它會掃上面這些模式,並給出改法。用別的 agent 時,終端跑 xcrun agent skills export 把技能匯出來。技能掃不全,寫死高度和自定義欄還是要人看。

三處測試,文件把 Duo 模擬器標成完整體驗:

  • Xcode 27.1 裡的 iPhone Duo 模擬器
  • Device Hub 裡可調整大小的 iOS 模擬器
  • macOS 27 上的 iPhone 鏡像,把視窗拉到兩個方向的極端尺寸

至少過這六種:合上、開啟、半折,各加豎持和橫持。再加一次系統 Split View。自定義相機和影片再單獨看半折時摺痕有沒有切開主體。

模擬器不要進日用機
  • Xcode 27.1 和 Duo 模擬器裝到單獨的 Mac,白天的會議和出包不要擠在同一臺筆記本上。
  • 先跑技能掃描,再手工看自定義欄、全出血影片和半折。
  • 沒有 regular 寬佈局的,不要在 10 月 16 日預購當天才開始做分欄。
  • 商店截圖和程式碼分開排。截圖補不上,不代表舊包會從 Duo 上消失。

一臺 Mac、Developer 計劃和 CI 的月賬單,我們在 9 月 14 日的成本文裡拆過。Duo 不會把那張表歸零,它只是讓 27.1 SDK 和模擬器有一臺乾淨的機器可裝。

常見問題

現有 iOS App 不更新,10 月 23 日還能開啟嗎?

能。蘋果寫明所有 App 都會執行。用 iOS 26 或更早 SDK 構建的,開啟時居中留白,合上時內容偏到狀態列和攝像頭左側。能開啟不等於介面已經適配。

是不是要為摺疊屏把 App 重寫一遍?

不用重寫業務、賬號和介面。要改的是佈局假設:UIScreen.main、固定方向、phone/pad 分支、寫死寬高,以及自定義工具欄。已經用系統容器並支援 iPad 尺寸變化的,工作量最小。

哪些型別最該排期改介面?

相機、視訊通話、閱讀和全屏影片要處理摺痕和半折。郵件、文件和協作工具要在內屏做分欄、外屏收回單欄。遊戲、地圖和設計畫布要檢查拉伸與安全區。標準列表和設定可以隨 SDK 升級先上。

只適配 iPhone、沒有 iPad 版,會不會不能用?

不會不能用。外屏豎持仍是 compact 寬。內屏是 regular 寬。程式碼若把 regular 寬當成只有 iPad 才顯示的功能,這些功能會在 Duo 內屏出現;若根本沒有 regular 佈局,新 SDK 會把單欄拉寬,舊 SDK 則留白。

iPhone Duo 出廠是哪一版系統?

新聞稿寫明配備 iOS 27.1。鋪滿內屏、工具欄和標籤欄改到狀態列下方豎排,對應的是 iOS 27.1 SDK 及以後。iOS 27 SDK 仍會避開右側狀態列。

預購和開售是哪天?

10 月 16 日太平洋時間凌晨 5 點開始預購,北京時間當天 20:00。10 月 23 日起在包括中國在內的 70 多個國家和地區開售,另有 28 個地區 10 月 30 日。美國起步價 1999 美元,256GB。

結語

摺疊屏沒有淘汰現有 iOS App。它淘汰的是「螢幕永遠是那一個尺寸」這句假設。10 月 23 日前值得改的,是寫死尺寸、按機型分支、自定義欄,以及相機、影片和內屏分欄。列表和設定跟著 27.1 SDK 走就夠。驗的時候用 Xcode 27.1 的 Duo 模擬器,別和日用機搶同一臺 Mac。

把 Xcode 27.1 和 Duo 模擬器放到單獨的 Mac 上

合上、開啟、半折各驗一遍,不該和白天的會議擠在同一臺筆記本上。

檢視 Cloud Mac 套餐

機房手記 · iPhone Duo

驗摺疊屏佈局,Xcode 放在獨立 Mac

iOS 27.1 · Duo 模擬器 · Cloud Mac

檢視 Cloud Mac 套餐
限時優惠 點選檢視套餐