อัปเดต UI เมื่อการวางแนวเปลี่ยนใน SwiftUI
ฉันเริ่มเรียนรู้ SwiftUI ฉันพยายามอัปเดต UI เมื่อการวางแนวกำลังเปลี่ยนไป ฉันเพิ่ม@Environment(\.horizontalSizeClass) var sizeClass
ในมุมมองของฉันจากนั้นเครื่องจำลอง iphone จะอัปเดต UI โดยอัตโนมัติเมื่อหมุน แต่เครื่องจำลอง iPad ไม่อัปเดต UI เมื่อหมุน คุณช่วยบอกวิธีอัปเดต UI สำหรับ iPad ได้ไหม
คำตอบ
nicksarno
หากคุณดูที่ Device Size Classes ใน Human Interface Guidelines คุณจะสังเกตเห็นว่า iPad มีความกว้างและความสูง 'ปกติ' ทั้งในโหมดแนวนอนและแนวตั้ง
ดังนั้นเมื่อคุณใช้. แนวนอนขนาดคลาสมันทำงานได้ทั้งบน iPhone และ iPad เพียงแค่นั้น iPad จะไม่เปลี่ยน sizeClass เมื่อหมุน
https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/adaptivity-and-layout/
- หากคุณกำหนดขนาดเฟรมด้วย GeometryReader จะมีการอัปเดตโดยอัตโนมัติเมื่อหมุนอุปกรณ์
- นอกจากนี้ยังมีประโยชน์มากในการตั้งค่า. frame (maxWidth :) ในมุมมองดังนั้นหาก iPad เป็นแนวนอนเนื้อหาของมุมมองจะถูก จำกัด ที่ไหนสักแห่งประมาณ 715 ที่ใช้งานได้ดี