Cảnh báo: Nó không hoạt động nữa với iOS 13 và Xcode 11.
================================================== ======================
Tôi đã phải thử tìm kiếm những cách khác. Cái nào không liên quanaddSubview
cửa sổ. Bởi vì tôi đang di chuyển lên cửa sổ khi bàn phím được hiển thị.
Objective-C
- (void)setStatusBarBackgroundColor:(UIColor *)color {
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
statusBar.backgroundColor = color;
}
}
Nhanh
func setStatusBarBackgroundColor(color: UIColor) {
guard let statusBar = UIApplication.sharedApplication().valueForKey("statusBarWindow")?.valueForKey("statusBar") as? UIView else {
return
}
statusBar.backgroundColor = color
}
Swift 3
func setStatusBarBackgroundColor(color: UIColor) {
guard let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView else { return }
statusBar.backgroundColor = color
}
Gọi biểu mẫu này application:didFinishLaunchingWithOptions
đã làm việc cho tôi.
NB Chúng tôi có một ứng dụng trong cửa hàng ứng dụng với logic này. Vì vậy, tôi đoán nó ổn với chính sách của cửa hàng ứng dụng.
Biên tập:
Sử dụng có nguy cơ của riêng bạn. Tạo người bình luận @Sebyddd
Tôi đã có một ứng dụng bị từ chối vì lý do này, trong khi một ứng dụng khác được chấp nhận tốt. Họ coi đó là cách sử dụng API riêng tư, vì vậy bạn có thể gặp may trong quá trình xem xét :) - Sebyddd