อัปเดต UI เมื่อการวางแนวเปลี่ยนใน SwiftUI

Jan 06 2021

ฉันเริ่มเรียนรู้ SwiftUI ฉันพยายามอัปเดต UI เมื่อการวางแนวกำลังเปลี่ยนไป ฉันเพิ่ม@Environment(\.horizontalSizeClass) var sizeClassในมุมมองของฉันจากนั้นเครื่องจำลอง iphone จะอัปเดต UI โดยอัตโนมัติเมื่อหมุน แต่เครื่องจำลอง iPad ไม่อัปเดต UI เมื่อหมุน คุณช่วยบอกวิธีอัปเดต UI สำหรับ iPad ได้ไหม

คำตอบ

nicksarno Jan 06 2021 at 04:27

หากคุณดูที่ 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 ที่ใช้งานได้ดี