【问题标题】:Changing only the body colour of UITableView or changing only the status bar colour仅更改 UITableView 的主体颜色或仅更改状态栏颜色
【发布时间】:2016-09-06 09:42:18
【问题描述】:

我想为 iOS 状态栏设置一个特定的颜色,我知道它将采用顶部视图控制器视图的颜色。 因此,我可以通过将状态栏所需的颜色应用于表格视图来获得它,它看起来像这样

但是当它没有任何行时,整个表格视图就会得到那种颜色(很明显!但这不是我想要的)

有没有办法只给表格视图的顶部提供颜色,以便状态栏获得该颜色,或者我可以单独更改状态栏颜色。 我有

查看基于控制器的状态栏外观

在 Info.plist 中为 NO。

【问题讨论】:

  • 下载镜像并添加,或者公开驱动镜像
  • @rajesh 您只能将状态栏的颜色更改为白色/黑色。

标签: ios swift uitableview ios7-statusbar


【解决方案1】:

您可以将背景颜色应用于状态栏,如下所示

UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];

if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
    statusBar.backgroundColor = [UIColor redColor];
}

在 AppDelegate didFinishLaunchingWithOptions 方法中使用上述代码会改变整个应用的状态栏背景颜色。如果您想将背景颜色更改为特定的视图控制器,那么您应该遵循@Lion's 的方法。

希望这会有所帮助。

【讨论】:

  • 这行得通,有一个问题,但是,我希望这种情况只发生在如何回退到原始视图的情况下。
【解决方案2】:

您应该使用一个自定义视图来代替状态栏,并为该视图赋予背景颜色。并将您的表格视图放在此自定义视图下方,这样您就不需要在表格视图的上部设置颜色!

视图的高度应为 20,宽度应等于屏幕宽度。

并且位置应该是(0,0)。

希望这会有所帮助:)

【讨论】:

  • 我应该在哪里添加自定义视图? self.tableView.addSubview(topView)self.tableView.superView?.addSubview(topView)
  • 没有。在您的视图控制器中。添加带有框架 (0,0,self.view.frame.size.width,20) 的自定义视图,并且您的 tableview 的框架应该 (0,20,width,height)
【解决方案3】:

您还可以在顶部状态栏添加一个窗口并更改其颜色。它看起来像这样:

// AppDelegate.Swift
let topWindow = UIWindow(frame: CGRect(....))
topWindow.backgroundColor = ...
window.addSubview(topWindow)

【讨论】:

    【解决方案4】:

    在斯威夫特上:

    override func viewWillAppear(animated: Bool) {
        self.navigationController?.navigationBarHidden =  true
    
    UIApplication.sharedApplication().statusBarHidden = false
    UIApplication.sharedApplication().statusBarStyle = .LightContent
    
    let statusBar: UIView = UIApplication.sharedApplication().valueForKey("statusBar") as! UIView
    if statusBar.respondsToSelector("setBackgroundColor:") {
        statusBar.backgroundColor = UIColor.redColor()
    }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2021-07-31
      • 1970-01-01
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      • 2015-09-26
      • 2016-11-04
      • 2017-02-02
      • 2021-11-05
      相关资源
      最近更新 更多