在我用Xcode 5为iOS 7构建的iPhone应用程序中,我在info中设置了
,在我的UIViewControllerBasedStatusBarAppearance=YES
。plist视图控制器
中,我有以下代码:
-(UIStatusBarStyle) preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
但是状态栏在黑色背景的映衬下还是黑色的。
我知道可以通过在info中设置
,但我实际上需要在运行时根据UIViewControllerBasedStatusBarAppearance=NO
来改变整个应用程序。plistviewController
对其进行修改。
对于preferredStatusBarStyle()
要在UINavigationController
和UITabBarController
中工作,我添加了以下代码,这将从当前可见的视图控制器中获取首选状态栏样式。
extension UITabBarController {
public override func childViewControllerForStatusBarStyle() -> UIViewController? {
return selectedViewController
}
}
extension UINavigationController {
public override func childViewControllerForStatusBarStyle() -> UIViewController? {
return visibleViewController
}
}
对于Swift 3,这些不是方法,而是属性:
extension UITabBarController {
open override var childViewControllerForStatusBarStyle: UIViewController? {
return selectedViewController
}
}
extension UINavigationController {
open override var childViewControllerForStatusBarStyle: UIViewController? {
return visibleViewController
}
}
Swift 4.2属性已重命名为:
extension UITabBarController {
open override var childForStatusBarStyle: UIViewController? {
return selectedViewController
}
}
extension UINavigationController {
open override var childForStatusBarStyle: UIViewController? {
return visibleViewController
}
}
用法
class ViewController: UIViewController {
// This will be called every time the ViewController appears
// Works great for pushing & popping
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
好吧,这是诀窍。您必须添加键“基于视图控制器的状态栏”,并将该值设置为否。
这与此键的含义相反,但即使将该值设置为No
,也可以更改状态栏的外观,以及它是否在任何视图控制器中显示。所以它的行为像是“是”,但设置为“否”!
现在我可以得到状态栏白色或黑色。
我发现,如果ViewController位于navigationController中,则navigationController的导航栏。barStyle
决定状态barStyle。
将导航栏的barStyle
设置为UIBarStyleBlackTransparent
将显示白色状态栏文本(即UIStatusBarStyleLightContent
),而UIBarStyleDefault
将显示黑色状态栏文本(即UIStatusBarStyleDefault
)。
请注意,即使您通过其barTintColor
完全更改导航栏的颜色,这也适用。
我需要通过耳机播放一些音频。我使用AudioTrack在设备上播放一些声音。并且音频模式被设置为流_语音_呼叫。此外,在我的活动中,免提电话是通过以下方式关闭的: 这似乎在2.3设备上运行得很完美。但在2.1上,声音仍然从扬声器播放。 为了解决这个问题,我尝试将setMode()用作: 有了这个,2.1和2.3的声音就可以通过耳机播放了,但2.3的大多数时候根本不会播放。此外,我在一些地方读到se
后更新内核到4.0.3在ubuntu phpmadmin在xampp不工作 我试试这个 开始XAMPPLinux5.6.8-0...XAMPP:启动Apache...好的。XAMPP:启动MySQL...已经运行。XAMPP:开始ProFTPD...好的。 和 正在停止Linux 5.6的XAMPP。8-0... XAMPP:正在停止Apache。。。不跑。XAMPP:正在停止MySQL。。。好啊
我试图让ESLint让我使用对象的Rest/传播。尽管我尽了最大努力,我还是得到了这个错误: 当我悬停在椭圆上时(<代码>...)用红色弯弯曲曲。 我的看起来像这样: 我确信prefs正在被阅读,因为规则、插件和样式指南正在按预期工作。 要启用对象rest/spread,是这里的关键(哈哈),它似乎对其他人有用。然而,它拒绝为我工作。我不知所措 更新:我使用的是Visual Studio代码v1.
我有下面这个简单的应用程序,无论我把WEB-INF文件夹放在哪里,当我访问它时总是会出现这个错误http://localhost:8080: 2018-08-02 15:06:23.076警告716---[nio-8100-exec-1]o.s.web。servlet。PageNotFound:在名为“DispatcherServlet”的DispatcherServlet中找不到URI为[/WE
我正在尝试将razorpay与php集成,一切正常,但在prefill中,我得到了一个默认值。如何将此值更改为自定义值?