2015-03-10 36 views
7

Tôi đang gặp sự cố với thanh trạng thái & thanh điều hướng. Theo mặc định, thanh điều hướng của UINavigationController mở rộng phía sau thanh trạng thái và tô màu nó (ảnh chụp màn hình bên trái).Thanh trạng thái giả màu khi thanh điều hướng bị ẩn

Khi thanh tìm kiếm được sử dụng, tôi ẩn thanh điều hướng. Điều này dẫn đến thanh trạng thái không đổi màu. Ứng dụng Thư của Apple không có vấn đề này.

Có giải pháp nào khác ngoài việc tạo UIView riêng biệt với màu nền và đặt nó sau thanh trạng thái không?

Image that shows hidden and not-hidden navigation bar, and how this affects the status bar color

Dưới đây là những gì tôi muốn thực hiện:

enter image description here

+1

nghiên cứu 'UIBarPositioningDelegate' – Desdenova

+0

Nhờ @Desdenova gợi ý, tôi thấy http://stackoverflow.com/a/18897105/3512120, mà giải quyết vấn đề của tôi, và bạn có thể là tốt. – joels

Trả lời

0

Khi bạn ẩn các Navigationbar tại sao bạn không còn cập nhật sự xuất hiện của UIStatusBar của bạn.

Thực hiện chức năng này trong NavigationController của bạn:

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    //Have an if statement to determine which UIStatusBarStyle to return, i.e if the navigationBar is hidden 
    return UIStatusBarStyleLightContent; 
} 

Và gọi nó là khi bạn ẩn thanh điều hướng của bạn bằng cách sử dụng này:

[self setNeedsStatusBarAppearanceUpdate]; 

Một lựa chọn khác là làm theo ý sau:

Đặt UIViewControllerBasedStatusBarAppearance thành NO trong tệp pList thông tin của bạn. Sau đó, bạn có thể gọi

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 
0

Trong IB của bạn (hoặc programatically), hãy thử để kiểm tra các số liệu mô phỏng cho thanh trên cùng: bạn nên đặt nó từ đục dần dần mờ (thanh điều hướng).

Lưu ý: Theo mặc định, thanh điều hướng mờ. Bạn sẽ nhận được thanh trạng thái "màu" ** cho miễn phí.

** theo quy định của UISearchBar.appearance().barTintColor

Các vấn đề liên quan