Perbarui UI saat orientasi berubah di SwiftUI

Jan 06 2021

Saya sudah mulai mempelajari SwiftUI. Saya mencoba memperbarui UI ketika orientasi berubah. Saya menambahkan @Environment(\.horizontalSizeClass) var sizeClassdalam tampilan saya, dan kemudian simulator iphone memperbarui UI secara otomatis saat diputar. Tapi simulator iPad tidak mengupdate UI saat diputar. Bisakah Anda memberi tahu saya cara memperbarui UI untuk iPad?

Jawaban

nicksarno Jan 06 2021 at 04:27

Jika Anda melihat Kelas Ukuran Perangkat di Panduan Antarmuka Manusia, Anda akan melihat bahwa iPad memiliki lebar dan tinggi 'Reguler' dalam mode lanskap dan potret.

Jadi saat Anda menggunakan .horizontalSizeClass, ini berfungsi baik di iPhone dan iPad, hanya saja iPad tidak mengubah sizeClass saat diputar.

https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/adaptivity-and-layout/

  • Jika Anda menyetel ukuran bingkai dengan GeometryReader, mereka akan diperbarui secara otomatis saat perangkat diputar.
  • Ini juga sangat berguna untuk hanya mengatur .frame (maxWidth :) pada tampilan, sehingga jika iPad dalam bentuk lanskap, konten tampilan akan dibatasi. Sekitar 715 bekerja dengan baik.