สำหรับผู้ที่สนใจทำซ้ำสิ่งนี้เพียงทำตามขั้นตอนเหล่านี้:
- สร้างโครงการ iOS ใหม่
- เปิดกระดานเรื่องราวหลักและลบค่าเริ่มต้น / เริ่มต้น
UIViewController
- ลากใหม่
UITableViewController
จากคลังวัตถุ
- ตั้งเป็นตัวควบคุมมุมมองเริ่มต้น
- ฟีดตารางทดสอบข้อมูลบางอย่าง
หากคุณทำตามขั้นตอนข้างต้นเมื่อคุณเรียกใช้แอปคุณจะไม่เห็นสิ่งใดรวมถึงการทำเครื่องหมายในช่องทำเครื่องหมาย Xcode เพื่อ "ขยายขอบภายใต้ {บน, ล่าง, ทึบแสง} บาร์" เพื่อหยุดแถวแรกไม่ให้ปรากฏภายใต้แถบสถานะ และคุณไม่สามารถระบุที่อยู่นี้ทางโปรแกรม
เช่นในสถานการณ์ข้างต้นสิ่งต่อไปนี้จะไม่มีผล:
// These do not work
self.edgesForExtendedLayout=UIRectEdgeNone;
self.extendedLayoutIncludesOpaqueBars=NO;
self.automaticallyAdjustsScrollViewInsets=NO;
ปัญหานี้อาจทำให้หงุดหงิดมากและฉันเชื่อว่ามันเป็นจุดบกพร่องของแอปเปิ้ลโดยเฉพาะอย่างยิ่งเพราะมันแสดงให้เห็นใน pre-wired ของพวกเขาเองUITableViewController
จากไลบรารีวัตถุ
ฉันไม่เห็นด้วยกับทุกคนที่พยายามจะแก้ปัญหานี้โดยใช้ "Magic Numbers" เช่น "ใช้ delta ขนาด 20px" การเขียนโปรแกรมแบบคู่อย่างแน่นหนานี้ไม่ใช่สิ่งที่ Apple ต้องการให้เราทำที่นี่
ฉันได้ค้นพบวิธีแก้ไขปัญหานี้สองวิธี:
รักษาUITableViewController
ฉากของ :
หากคุณต้องการเก็บไว้UITableViewController
ในกระดานเรื่องราวโดยไม่ต้องวางมันลงในมุมมองอื่นด้วยตนเองคุณสามารถฝังUITableViewController
ในUINavigationController
(ตัวแก้ไข> ฝังใน> ตัวควบคุมการนำทาง) และยกเลิกการเลือก "แสดงแถบนำทาง" ในตัวตรวจสอบ . วิธีนี้จะช่วยแก้ปัญหาโดยไม่จำเป็นต้องมีการปรับแต่งเพิ่มเติมและมันยังคงรักษาUITableViewController
ฉากของคุณในกระดานเรื่องราว
การใช้ AutoLayout และฝังUITableView
เข้าไปในมุมมองอื่น (ฉันเชื่อว่านี่เป็นวิธีที่ Apple ต้องการให้เราทำ) :
สร้างที่ว่างเปล่าUIViewController
แล้วลากของคุณUITableView
เข้าไป จากนั้นให้ลาก Ctrl จากUITableView
ไปยังแถบสถานะ เมื่อเมาส์ไปถึงด้านล่างของแถบสถานะคุณจะเห็นลูกโป่งการเล่นอัตโนมัติที่ระบุว่า "คู่มือการจัดวางด้านบน" ปล่อยเมาส์แล้วเลือก "Vertical Spacing" ที่จะบอกระบบการจัดวางที่ด้านล่างของแถบสถานะ
ฉันได้ทดสอบทั้งสองวิธีในแอปพลิเคชันที่ว่างเปล่าและพวกเขาทำงานได้ทั้งสองอย่าง คุณอาจต้องทำการปรับแต่งเพิ่มเติมเพื่อให้โครงการของคุณทำงานได้