警告:iOS13およびXcode11では機能しなくなりました。
================================================== ======================
私は他の方法を探さなければなりませんでした。これはaddSubview
ウィンドウには関係ありません。キーボードが表示されているときにウィンドウを上に移動しているためです。
Objective-C
- (void)setStatusBarBackgroundColor:(UIColor *)color {
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
statusBar.backgroundColor = color;
}
}
迅速
func setStatusBarBackgroundColor(color: UIColor) {
guard let statusBar = UIApplication.sharedApplication().valueForKey("statusBarWindow")?.valueForKey("statusBar") as? UIView else {
return
}
statusBar.backgroundColor = color
}
スウィフト3
func setStatusBarBackgroundColor(color: UIColor) {
guard let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView else { return }
statusBar.backgroundColor = color
}
このフォームを呼び出すことapplication:didFinishLaunchingWithOptions
は私のために働いた。
注意:このロジックを使用したアプリがAppStoreにあります。だから私はそれがアプリストアのポリシーで大丈夫だと思います。
編集:
自己責任。コメント投稿者を形成する@Sebyddd
1つのアプリがこの原因を拒否しましたが、別のアプリは問題なく受け入れられました。彼らはそれをプライベートAPIの使用と見なしているので、レビュープロセス中に運がかかる可能性があります:) – Sebyddd