วิธีซ่อนแถบสถานะเมื่อหน้าจอเริ่มต้นปรากฏใน iPhone


คำตอบ:


191

ฉันค่อนข้างมั่นใจว่าหากไฟล์ Info.plist ของคุณมีStatus bar is initially hiddenค่าที่ตั้งไว้YESมันจะไม่แสดงในขณะที่แอปพลิเคชันของคุณกำลังโหลด เมื่อแอปพลิเคชันของคุณโหลดแล้วคุณสามารถแสดงแถบสถานะอีกครั้งโดยใช้setStatusBarHidden:animated:วิธีการของ UIApplication


1
ไม่มีตัวเลือกดังกล่าวใน info.plist. มีวิธีเพิ่มด้วยตนเองหรือไม่
Rahul Vyas

3
@ ราหุลเลือกบรรทัดสุดท้ายในไฟล์แล้วคลิกปุ่มบวกที่ด้านขวาสุดของบรรทัด จากนั้นพิมพ์ในตัวเอง
Dave DeLong

2
วิธีการแสดงแถบสถานะอีกครั้งคือ setStatusBarHidden: withAnimation:
SargeATM

2
หากคุณต้องการเพิ่มด้วยตนเองคุณสามารถแก้ไข plist ในโปรแกรมแก้ไขข้อความเช่น BBEdit และเพิ่มบรรทัด: <key> UIStatusBarHidden </key> <true /> เหนือบรรทัด </dict> หรือใน Xcode คลิกขวาที่ plist แล้วเลือก Open As ... Source Code และแก้ไขเป็นข้อความ
JScarry

9
"เมื่อโหลดแอปพลิเคชันของคุณแล้วคุณสามารถแสดงแถบสถานะอีกครั้งได้" เพียงเพื่อชี้แจงหากใครสับสนการตั้งค่า[[UIApplication sharedApplication] setStatusBarHidden:NO];- application: didFinishLaunchingWithOptions:
Ryan Romanchuk

48

คีย์ที่ถูกต้องใน. plist คือ "UIStatusBarHidden" และตรวจสอบด้านขวามันจะกลายเป็น "แถบสถานะถูกซ่อนในตอนแรก" จากนั้นโดยอัตโนมัติ ในทางปฏิบัติของฉันคุณสามารถควบคุมการแสดง / ซ่อนของ StatusBar ได้ทุกที่โดยเมื่อซ่อน:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];
[UIApplication sharedApplication].keyWindow.frame=CGRectMake(0, 0, 320, 480); //full screen.

เมื่อแสดง:

[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO];
[UIApplication sharedApplication].keyWindow.frame=CGRectMake(0, 20, 320, 460); //move down 20px.

หวังว่านี่จะเป็นประโยชน์กับคุณ


ในการตั้งค่าขนาดของ CGRectMake แบบไดนามิกกับ iPhone ทุกประเภท: [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO]; float width = ((UIScreen *)[UIScreen mainScreen]).bounds.size.width; float height = (((UIScreen *)[UIScreen mainScreen]).bounds.size.height - 20); [UIApplication sharedApplication].keyWindow.frame = CGRectMake(0, 20, width, height);
reinaldoluckman

UIApplication setStatusBarHidden:withAnimationคาดว่าจะมี NSInteger typedef UIStatusBarAnimationสำหรับอาร์กิวเมนต์ที่สองไม่ใช่ BOOL แทนที่จะNOใช้UIStatusBarAnimationNone
ผู้ใช้


6

การติดตามคำตอบของ Dave คีย์ "แถบสถานะถูกซ่อนในตอนแรก" ใช้ไม่ได้สำหรับฉันใน iOS 4.3 แต่คีย์ "UIStatusBarHidden" จากนั้นตั้งค่าให้เป็นประเภทบูลีนและทำเครื่องหมายในช่องนี้

http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html#//apple_ref/doc/uid/TP40009254-SW4

บทความสำหรับนักพัฒนานี้ทำให้ฉันเข้าสู่คีย์ Info.plist จากนั้นการหาคีย์ที่เทียบเท่ากันเพื่อซ่อนมันก็ไม่ยากเกินไป

ที่น่าสนใจคือ "UIStatusBarStyle" ต้องใช้ชื่อการแจงนับเป็นสตริงเพื่อให้ทำงานได้


6

สำหรับ Xcode 5 ขึ้นไปคุณสามารถตั้งค่า:

ดูแถบสถานะที่ใช้คอนโทรลเลอร์เป็น NO

ใน info.plist ของคุณหรือในแท็บข้อมูลในโครงการหลักของคุณ

ตัวอย่างการตั้งค่าข้อมูลใน xcode


3

เขียน 1 บรรทัดนี้ในเมธอด. m viewDidload หลักของคุณ

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];

หรือเลือกไฟล์ info.plist จากโฟลเดอร์ไฟล์ที่สนับสนุนโครงการในพื้นที่ทำงาน

ตั้งค่า statusbarinitialyhidden เป็น YES


2

เลิกใช้แล้ว

setStatusBarHidden:(BOOL) animated:(BOOL) 

ถูกต้อง

setStatusBarHidden:(BOOL) withAnimation:(UIStatusBarAnimation)

UIStatusBarAnimationซึ่งสามารถ:

UIStatusBarAnimationNoneหรือUIStatusBarAnimationFadeหรือUIStatusBarAnimationSlide




โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.