Cập nhật giao diện người dùng khi hướng thay đổi trong SwiftUI

Jan 06 2021

Tôi đã bắt đầu học SwiftUI. Tôi cố gắng cập nhật giao diện người dùng khi hướng thay đổi. Tôi đã thêm @Environment(\.horizontalSizeClass) var sizeClassvào chế độ xem của mình và sau đó trình mô phỏng iphone sẽ tự động cập nhật giao diện người dùng khi được xoay. Nhưng trình mô phỏng iPad không cập nhật giao diện người dùng khi xoay. Bạn có thể cho tôi biết cách cập nhật giao diện người dùng cho iPad không?

Trả lời

nicksarno Jan 06 2021 at 04:27

Nếu bạn xem các Lớp Kích thước Thiết bị trong Nguyên tắc Giao diện Con người, bạn sẽ nhận thấy rằng iPad có chiều rộng và chiều cao 'Thông thường' ở cả chế độ ngang và dọc.

Vì vậy, khi bạn sử dụng .horizontalSizeClass, nó đang hoạt động trên cả iPhone và iPad, chỉ là iPad không thay đổi sizeClass khi xoay.

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

  • Nếu bạn đặt kích thước khung hình bằng GeometryReader, chúng sẽ tự động được cập nhật khi thiết bị được xoay.
  • Nó cũng khá hữu ích khi chỉ đặt .frame (maxWidth :) trên các chế độ xem, để nếu iPad nằm ngang, nội dung của chế độ xem sẽ bị hạn chế. Đâu đó khoảng 715 hoạt động tốt.