ฉันได้รับ UIView พร้อม 2 มุมมองย่อย UIView ถูกตั้งค่าเป็น UIViewAutoresizingFlexibleWidth ตอนนี้เมื่อมันเข้าสู่เลย์เอาต์ Subviews มันจะปรับขนาดเฟรมของมุมมองย่อยที่สัมพันธ์กับ UIView ดังนี้:
rect.size.width = self.frame.size.width - rect.origin.x - textLabel.frame.origin.x;
แต่ปัญหาเกิดขึ้นในโหมดแนวนอนทำให้ในโหมดแนวตั้ง self.frame.size.width (และขอบเขตสำหรับเรื่องนั้น) ตอบสนอง 768 เมื่อเริ่มต้นและ 788 หลังจากหมุนเสร็จแล้ว หมายความว่าเมื่อมันหมุนดูเหมือนว่าจะเพิ่ม 20pixels ซึ่งฉันคิดว่าเป็นแถบสถานะ
เมื่อฉันฮาร์ดโค้ด 768 ทุกอย่างทำงานได้ตามที่คาดไว้ แต่ฉันไม่ต้องการสิ่งนั้นแน่นอน ฉันสามารถเก็บสถานะเริ่มต้นไว้ใน var และใช้สิ่งนั้นได้ แต่ฉันไม่คิดว่านั่นเป็นวิธีที่ถูกต้องในการทำ
ใครมีวิธีแก้ปัญหา?