LoginSignup
7
0

Xcode15&iOS17でウィジェットに余白ができて表示が小さくなった。

Last updated at Posted at 2023-08-04

Xcode15betaでウィジェットを確認した所、余白ができて表示が小さくなっていましたので解決方法をご紹介します。
(Small・Medium・Largeウィジェット共通)

ウィジェットのプレビュー画面比較

Xcode14:ウィジェットのプレビュー画面
スクリーンショット 2023-08-04 15.59.17.png
Xcode15beta:ウィジェットのプレビュー画面
スクリーンショット 2023-08-04 15.34.46.png

なんか変な余白ができている…

シミュレーターでの比較

Xcode14
スクリーンショット 2023-08-04 16.01.08.png
Xcode15beta
スクリーンショット 2023-08-04 15.29.08.png

実際にビルドしてみると余白が出来た分、ウィジェットの表示が小さくなっていた。

解消方法

どうやらiOS17の場合、変な余白ができるらしい。
なのでiOS17の場合は、余白を無効にする処理が必要。
https://developer.apple.com/documentation/swiftui/widgetconfiguration/contentmarginsdisabled()

各ウィジェットに共通で入れたいのでextensionで以下の処理を準備する。

extension WidgetConfiguration {
    func contentMarginsDisabledIfAvailable() -> some WidgetConfiguration {
        if #available(iOSApplicationExtension 17.0, *) {
            return self.contentMarginsDisabled()
        } else {
            return self
        }
    }
}

Small・Medium・Largeのウィジェットに共通で追加する。

 var body: some WidgetConfiguration {
     .contentMarginsDisabledIfAvailable()
 }
7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0