ฉันรู้ว่าการมีอยู่ของตัวควบคุมมุมมองเพิ่มเติม (แถบการนำทาง) ผลัก UIView ลงตามความสูง ฉันก็รู้ว่าความสูงนี้ = 44px [self.view].frame.origin.y = 0
ฉันได้ค้นพบว่าการผลักดันลงนี้รักษา
ดังนั้นฉันจะกำหนดความสูงของแถบนำทางได้อย่างไรนอกเหนือจากการตั้งค่าเป็นค่าคงที่ได้อย่างไร
หรือรุ่นที่สั้นกว่าฉันจะทราบได้อย่างไรว่า UIView ของฉันแสดงพร้อมแถบนำทางด้านบน
หลอดไฟเริ่มเข้ามา น่าเสียดายที่ฉันไม่ได้ค้นพบวิธีที่เหมือนกันในการแก้ไขปัญหาดังที่อธิบายไว้ด้านล่าง
ฉันเชื่อว่าปัญหาทั้งหมดของฉันมุ่งเน้นไปที่งานรับอัตโนมัติของฉัน และเหตุผลที่ฉันได้ข้อสรุปว่ามีอาการเดียวกันอยู่โดยมีหรือไม่มี UIWebView และอาการนั้นก็คือทุกอย่างนั้นมีสีพีชสำหรับรูปคน สำหรับแนวนอน UIButton ส่วนใหญ่ที่อยู่ด้านล่างจะปรากฏขึ้นด้านหลัง TabBar
ตัวอย่างเช่นฉันมี UIView หนึ่งรายการจากบนลงล่าง:
UIView - ทั้งชุดสปริง (ตัวพิมพ์ดีฟอลต์) และไม่มี struts
UIScrollView - ถ้าฉันตั้งค่าสปริงทั้งสองและล้างทุกอย่างอื่น (เช่น UIView) UIButton จะบุกรุกวัตถุบนเหนือมันทันที หากฉันล้างทุกอย่าง UIButton จะใช้ได้ แต่สิ่งที่ซ่อนอยู่ด้านบนสุดด้านหลัง StatusBar การตั้งค่าเฉพาะ strut ด้านบน UIButton จะปรากฏขึ้นด้านหลัง Tab Bar
UILabel และ UIImage ติดตั้งในแนวตั้ง - แนวดิ่งบนสุดยืดหยุ่นได้ทุกที่
เพียงเพื่อให้ภาพสมบูรณ์สำหรับคนที่มี UIWebView:
UIWebView - Struts: ด้านบนซ้ายขวาสปริง: ทั้งคู่
UIButton - ไม่ได้ตั้งค่าใด ๆ เช่นยืดหยุ่นทุกที่
แม้ว่าหลอดไฟของฉันจะสลัว แต่ก็มีความหวัง
กรุณาอดทนกับฉันเพราะฉันต้องการห้องพักมากกว่าที่ให้ไว้สำหรับความคิดเห็นตอบสั้น ๆ
ขอบคุณที่พยายามเข้าใจสิ่งที่ฉันกำลังตกปลาเพื่อ ... ไปเลย
1) แต่ละ UIViewController (แอพ TabBar) มี UIImage ข้อความและอะไรก็ตามที่อยู่ด้านบน ตัวหารทั่วไปอีกตัวคือ UIButton ที่ด้านล่าง ใน UIViewControllers บางอันฉันมี UIWebView อยู่เหนือ UIButton
ดังนั้น UIImage ข้อความ ฯลฯ UIWebView (บนบาง) UIButton
ล้อมรอบทั้งหมดข้างต้นเป็น UIScrollView
2) สำหรับผู้ที่มี UIWebView การ autoresizingMask จะมีลักษณะดังนี้:
—
|
—
^
|
|
| - | ← ---- → | - | | | V หน้ากากของ UIButton นั้นไม่ได้มีอะไรที่ยืดหยุ่น
ภายใน -viewDidLoad ของฉันฉันเรียก -repositionSubViews ภายในซึ่งฉันทำสิ่งต่อไปนี้:
หากไม่มี UIWebView ฉันไม่ทำอะไรเลยนอกจากวาง UIButton ที่ฉันวางไว้ที่กึ่งกลาง
หากฉันมี UIWebView ฉันจะพิจารณา * เนื้อหา * ความสูงและตั้งกรอบให้ล้อมเนื้อหาทั้งหมด
UIScrollView *scrollViewInsideWebView = [[webView_ subviews] lastObject];
webViewContentHeight = scrollViewInsideWebView.contentSize.height;
[webView_ setFrame:CGRectMake(webViewOriginX, webViewOriginY,
sameWholeViewScrollerWidth, webViewContentHeight)]
เมื่อฉันทำเช่นนั้นฉันจะกด UIButton ลงในโปรแกรมเพื่อให้วางไว้ใต้ UIWebView
ทุกอย่างทำงานได้จนกว่าฉันจะหมุนจากแนวตั้งเป็นแนวนอน
ฉันเรียก -repositionSubViews ภายใน -didRotateFromInterfaceOrientation ของฉัน
ทำไมความสูงของเนื้อหาของ UIWebView ของฉันจึงไม่เปลี่ยนแปลงเมื่อหมุน?
จากแนวตั้งเป็นแนวนอนความกว้างของเนื้อหาควรขยายและความสูงของเนื้อหาควรลดลง มันมองเห็นได้ตามที่ควร แต่ไม่ใช่ตาม NSLog ของฉัน
อย่างไรก็ตามมีหรือไม่มี UIWebView ปุ่มที่ฉันได้พูดคุยเกี่ยวกับการเคลื่อนไหวด้านล่าง TabBar เมื่ออยู่ในโหมดแนวนอน แต่มันจะไม่เลื่อนขึ้นไปให้เห็น ฉันเห็นมันอยู่ด้านหลัง TabBar เมื่อฉันเลื่อน "แรง" แต่แล้วมันก็ "ถอยกลับ" ด้านหลัง TabBar
บรรทัดสุดท้ายนี่คือเหตุผลที่ฉันถามเกี่ยวกับความสูงของ TabBar และ NavigationBar เพราะ TabBar ปลูกเองที่ด้านล่างของ UIView และ NavigationBar ผลัก UIView ลง
ตอนนี้ฉันจะเพิ่มความคิดเห็นหนึ่งหรือสองที่นี่เพราะพวกเขาจะไม่เข้าใจก่อนหน้านี้
เมื่อไม่มี UIWebView ฉันจะทิ้งทุกอย่างตามที่เห็นโดย IB
ด้วย UIWebView ฉันเพิ่มเฟรมของ UIWebView เป็นความสูงของเนื้อหาความสูงและยังปรับความสูงของ UIScrollView โดยรอบที่สูงขึ้นซึ่งล้อมรอบมุมมองย่อยทั้งหมด
คุณก็มีมัน