Làm thế nào để ẩn thanh trạng thái khi màn hình giật gân xuất hiện trong iphone?


85

Có cách nào để ẩn thanh trạng thái khi hiển thị màn hình giật gân trong iPhone và sau đó hiển thị lại trong ứng dụng không?

Câu trả lời:


191

Tôi khá chắc chắn rằng nếu tệp Info.plist của bạn có Status bar is initially hiddengiá trị được đặt thành YES, thì nó sẽ không hiển thị khi ứng dụng của bạn đang tải. Sau khi ứng dụng của bạn đã tải, bạn có thể hiển thị lại thanh trạng thái bằng setStatusBarHidden:animated:phương pháp của UIApplication .


1
không có tùy chọn như vậy trong info.plist.is Có cách nào để thêm nó bằng tay
Rahul Vyas

3
@Rahul chọn dòng cuối cùng trong hồ sơ và sau đó nhấp vào nút dấu cộng ở đầu bên phải của dòng. Sau đó nhập nó vào chính bạn.
Dave DeLong

2
Phương pháp tái hiển thị trên thanh trạng thái hiện nay, setStatusBarHidden: withAnimation:
SargeATM

2
Nếu bạn muốn thêm nó theo cách thủ công, bạn có thể chỉnh sửa plist trong một trình soạn thảo văn bản như BBEdit và thêm các dòng: <key> UIStatusBarHidden </key> <true /> ngay trên dòng </dict>. Hoặc trong Xcode nhấp chuột phải vào plist và chọn Open As ... Source Code và chỉnh sửa nó dưới dạng văn bản.
JScarry

9
"Một khi ứng dụng của bạn đã được nạp, bạn có thể tái hiển thị trên thanh trạng thái" Chỉ cần làm rõ nếu có ai đang bối rối, nó an toàn để thiết lập [[UIApplication sharedApplication] setStatusBarHidden:NO];trên - ứng dụng: didFinishLaunchingWithOptions:
Ryan Romanchuk

48

Khóa chính xác trong .plist là "UIStatusBarHidden" và chọn bên phải được chọn. Nó sẽ trở thành "Thanh trạng thái ban đầu bị ẩn" sau đó tự động. Trong thực tế của tôi, bạn có thể kiểm soát hiển thị / ẩn của StatusBar ở bất kỳ đâu bằng cách ẩn:

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

khi hiển thị:

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

hy vọng điều này là hữu ích cho bạn.


Để tự động thiết lập kích thước của CGRectMake cho bất kỳ loại 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đang mong đợi một typedef NSInteger UIStatusBarAnimationcho đối số thứ hai, không phải BOOL. Thay vì NO, hãy sử dụngUIStatusBarAnimationNone
người dùng

23

Xem -> Loại danh sách tài sản -> iPhone Info.plist. Bây giờ, hãy tạo một mục mới với chọn "Thanh trạng thái ban đầu bị ẩn".


6

Sau câu trả lời của Dave, khóa "Thanh trạng thái ban đầu bị ẩn" không hoạt động đối với tôi trong iOS 4.3 NHƯNG khóa "UIStatusBarHidden" và sau đó đặt loại của nó thành Boolean và chọn hộp đã thực hiện thủ thuật.

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

Bài viết dành cho nhà phát triển này đã đưa tôi đến với các khóa Info.plist và sau đó tìm ra khóa tương đương để ẩn nó không quá khó.

Điều thú vị là "UIStatusBarStyle" cần sử dụng tên liệt kê như một chuỗi để nó hoạt động.


6

Đối với Xcode 5 trở lên, bạn chỉ cần đặt:

Xem giao diện thanh trạng thái dựa trên bộ điều khiển thành KHÔNG

Trong info.plist của bạn hoặc trong tab thông tin về dự án chính của bạn.

Ví dụ về cài đặt Thông tin trong xcode


3

ghi 1 dòng này vào phương thức .m viewDidload chính của bạn

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

hoặc chọn tệp info.plist từ thư mục tệp hỗ trợ dự án của bạn trong không gian làm việc

đặt statusbarinitialyhiested thành CÓ


2

không được dùng nữa

setStatusBarHidden:(BOOL) animated:(BOOL) 

là chính xác

setStatusBarHidden:(BOOL) withAnimation:(UIStatusBarAnimation)

UIStatusBarAnimation có thể là:

UIStatusBarAnimationNone hoặc UIStatusBarAnimationFade hoặc UIStatusBarAnimationSlide


1

Điều này đã làm việc cho tôi trong info.plist:

"View controller-based status bar appearance"  -> set to NO

1

Thêm Status bar is initially hiddenvào YEStrong info.plisttệp. Điều này đã làm việc cho tôi.

thanh trạng thái ẩn


0

Đối với trình soạn thảo XML ~ thêm vào con đầu tiên của

<key>UIStatusBarHidden</key>
<true/>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.