Tôi đang cố thay đổi màu của thanh trạng thái thành màu xanh dương hoặc một số màu khác.Thay đổi Màu của Thanh Trạng thái
Điều này có thể xảy ra hay Apple không cho phép điều đó?
Tôi đang cố thay đổi màu của thanh trạng thái thành màu xanh dương hoặc một số màu khác.Thay đổi Màu của Thanh Trạng thái
Điều này có thể xảy ra hay Apple không cho phép điều đó?
đầu tiên trong Plist thiết View controller-based status bar appearance
để NO
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let statusBar: UIView = UIApplication.shared.value(forKey: "statusBar") as! UIView
if statusBar.responds(to:#selector(setter: UIView.backgroundColor)) {
statusBar.backgroundColor = UIColor.blue
}
UIApplication.shared.statusBarStyle = .lightContent
return true
}
Sản lượng ảnh chụp màn hình dưới
Điều này đang sử dụng API riêng tư, không có giấy tờ mà có thể không vượt qua đánh giá ứng dụng. Nó không bao giờ là một ý tưởng tốt để làm những việc như thế này. Nó có khả năng sụp đổ, đặc biệt là khi được viết, khi API riêng tư thay đổi trong một số bản cập nhật iOS trong tương lai. – rmaddy
Tôi đã có một ứng dụng bị từ chối nguyên nhân của điều này, trong khi một ứng dụng khác được chấp nhận tốt. Họ xem xét nó sử dụng API tư nhân, vì vậy bạn có thể may mắn trong quá trình xem xét :) - @Sebyddd – byJeevan
Tôi chắc chắn sẽ ** thêm ** thực tế này vào câu trả lời của bạn. – dfd
Không, nó không thể xảy ra với các API công cộng làm sẵn.
Nhưng với việc phát hành iOS 7
, bạn được phép thay đổi giao diện của thanh trạng thái. Do đó tôi ở đây đăng cách giải quyết của tôi.
Từ một bộ điều khiển xem cá nhân bằng cách ghi đè các preferredStatusBarStyle
:
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
Ngoài ra, bạn có thể thiết lập tình trạng phong cách thanh bằng cách sử dụng phương pháp UIApplication statusBarStyle
. Để thực hiện việc này, hãy chèn một khóa mới có tên “Xem giao diện thanh trạng thái dựa trên bộ điều khiển” và đặt giá trị thành NO.
Bằng cách tắt "Xem giao diện thanh trạng thái dựa trên bộ điều khiển", bạn có thể đặt kiểu thanh trạng thái bằng cách sử dụng mã sau.
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Cuối cùng, thay đổi màu sắc thái UINavigationBar
tài sản như dưới đây
[[UINavigationBar appearance] setBarTintColor:[UIColor blueColor]];
Để làm rõ câu trả lời của bạn, hãy thay đổi thanh trạng thái ** màu nền ** thành màu ** ** cụ thể? – dfd
Bản chỉnh sửa này không có ý nghĩa. OP muốn thay đổi thanh trạng thái, chứ không phải thanh điều hướng. – dfd
Vui lòng tham khảo liên kết này http://www.appcoda.com/customize-navigation-status-bar-ios-7/ – byJeevan
Bạn có thể đặt màu nền cho thanh trạng thái trong suốt ra mắt ứng dụng hoặc trong viewDidLoad của bộ điều khiển tầm nhìn của bạn.
extension UIApplication {
var statusBarView: UIView? {
return value(forKey: "statusBar") as? UIView
}
}
// Set upon application launch, if you've application based status bar
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
return true
}
}
or
// Set it from your view controller if you've view controller based statusbar
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
}
}
Dưới đây là kết quả:
Đây là Apple Guidelines/Instruction về sự thay đổi thanh trạng thái. Chỉ tối thiểu & ánh sáng (trong khi & màu đen) được phép trong thanh trạng thái.
Đây là - Làm thế nào để thay đổi trạng thái thanh phong cách:
Nếu bạn muốn thiết lập tình trạng phong cách bar, mức độ ứng dụng sau đó thiết lập UIViewControllerBasedStatusBarAppearance
-NO
trong file `plist' của bạn.
nếu bạn wan để sửa status kiểu quầy bar, ở cấp chế độ điều khiển sau đó làm theo các bước sau:
UIViewControllerBasedStatusBarAppearance
-YES
trong file .plist
, nếu bạn cần phải thiết lập tình trạng phong cách thanh chỉ ở mức độ UIViewController .Trong viewDidLoad thêm chức năng - setNeedsStatusBarAppearanceUpdate
override preferredStatusBarStyle trong điều khiển điểm của bạn.
-
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
Set giá trị của plist theo tình trạng phong cách thanh mức thiết lập.
Dưới đây là cách giải quyết của tôi: tạo UIView
, thêm nó vào xem gốc lại xem điều khiển như tình trạng nhân tạo thanh nền
1.Create một UIView
// status bar's height is 20.0pt
CGRect frame = CGRectMake(0.0, 0.0, [UIScreen mainScreen].bounds.size.width, 20.0);
UIView *fakeStatusBarBG = [[UIView alloc] initWithFrame:frame];
fakeStatusBarBG.backgroundColor = [UIColor yourColor];
2.Add nó để chế độ xem gốc của trình điều khiển chế độ xem của bạn
// self is your view controller, make sure fakeStatusBarBG is the top subview in your view hierarchy
[self.view insertSubview:fakeStatusBarBG aboveSubview:yourTopSubview];
Có của bạn.
3. (Bổ sung) Thay đổi màu nội dung trên thanh trạng thái, chỉ trắng hoặc đen.
- (UIStatusBarStyle)preferredStatusBarStyle
{
if (youWantWhiteColor)
{
return UIStatusBarStyleLightContent;
}
return UIStatusBarStyleDefault;
}
Cách giải quyết này không sử dụng API riêng tư, vì vậy bạn an toàn. :-)
Dựa trên hai câu trả lời (có nhận xét), câu trả lời (như tôi nghĩ) là ** không **. Bạn có thể (1) thay đổi màu phông chữ của thanh trạng thái hoặc (2) sử dụng API riêng tư, nhưng bạn đang tận dụng cơ hội Apple từ chối ứng dụng của bạn (hoặc tệ hơn, từ chối nó ở đâu đó trên đường). – dfd