ฉันจะแน่ใจได้อย่างไรว่ามุมมอง tableViewController เต็มหน้าจอ

ในเมธอด viewDidLoad ฉันเพิ่มชุดค่าผสมของสิ่งเหล่านี้ แต่ใช้งานไม่ได้:

 CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
 [[self tableView] setBounds:appFrame]; 
 // self.view.frame = appFrame;
// self.view.bounds = appFrame;
// [[self tableVew] setFrame:appFrame];
 self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;

ที่ด้านบนจะมีช่องว่าง 20px เสมอโดยที่หน้าจอก่อนหน้าของฉันแสดงผ่าน


person Bryan    schedule 18.08.2009    source แหล่งที่มา


คำตอบ (2)


20px คือห้องสำหรับแถบสถานะ (เอกสารใน -applicationFrame ครอบคลุมสิ่งนี้) คุณได้ปิดแถบสถานะ (ด้วย -setStatusBarHidden:animated:) แล้วหรือยัง?

person Rob Napier    schedule 18.08.2009
comment
ฉันไม่ได้ซ่อนแถบสถานะ มันยังคงมองเห็นได้ ช่องว่างในการแสดงหน้าจอเก่าของฉันอยู่ใต้แถบสถานะ คุณอาจพูดถูกและเกี่ยวข้องกับแถบสถานะ - person Bryan; 19.08.2009
comment
ปัญหาคือ applicationFrame ให้ออฟเซ็ต 20px สำหรับแถบสถานะ จากนั้นคุณจะใช้เฟรมนั้นกับมุมมองที่ตัวเองอยู่ในมุมมองอื่น (หน้าต่างถ้าไม่มีอะไรอื่น) และดังนั้นเฟรมใหม่ของคุณจึงถูกชดเชยจากพาเรนต์ของคุณที่ 20px คุณต้องการตั้งค่าเฟรมให้มีขนาดเท่ากับเฟรมหลักของคุณ (หรือท้ายที่สุดคือเฟรมของหน้าต่าง) หน้าต่างนี้แสดงเต็มหน้าจอแล้ว หน้าจอก่อนหน้าที่คุณพูดถึงที่นี่คืออะไร? - person Rob Napier; 19.08.2009
comment
ขอบคุณร็อบ หน้าจอที่แล้วเป็นอีก viewController - หน้าจอเกมหลักของฉัน หน้าจอที่ฉันทำงานด้วยคือหน้าจอผลลัพธ์ คำแนะนำของคุณที่นี่นำไปสู่วิธีแก้ปัญหาของฉันด้านล่างทันที ขอบคุณ. - person Bryan; 19.08.2009

แทนที่จะตั้งค่าขอบเขตให้กับเฟรมแอปพลิเคชัน: CGRect appFrame = [[UIScreen mainScreen] applicationFrame]; ฉันตั้งค่าขอบเขตให้กับขอบเขตของแอปพลิเคชัน: CGRect appFrame = [[UIScreen mainScreen] bounds];

จากนั้นฉันก็ตั้งค่านั้นเป็นขอบเขตของ tableview ของฉัน [[self tableView] setBounds:appFrame];

person Bryan    schedule 18.08.2009