【问题标题】:Set NavigationBar background color on MFMessageComposeViewController在 MFMessageComposeViewController 上设置 NavigationBar 背景颜色
【发布时间】:2017-08-21 11:19:16
【问题描述】:

我在更改 MFMessageComposeViewController 上导航栏的背景颜色时遇到问题。

我试过这段代码:

UINavigationBar.appearance().barTintColor = Configuration.Colors.navigationBarBackgroundColor
UINavigationBar.appearance().backgroundColor = UIColor.green
UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: UIFont(name: "Roboto-Regular", size: 18)!, NSForegroundColorAttributeName: UIColor.white] as [String: AnyObject]

let composer = MFMessageComposeViewController() 

self?.present(composer, animated: true) {
    UIApplication.shared.statusBarStyle = .lightContent
}

这是行不通的。最奇怪的是,当我为MFMailComposeViewController 做同样的事情时它确实有效。

我也试过像这样直接在作曲家上改变颜色。

composer.navigationBar.tintColor = Configuration.Colors.navigationBarBackgroundColor

【问题讨论】:

  • 请查看此链接 [Link to set navigation on mail composer ](stackoverflow.com/questions/39453933/…)
  • 更改 info.plist 行查看基于控制器的状态栏外观并将其设置为 NO
  • 设置背景颜色的属性是composer.navigationBar.barTintColor试试就行了

标签: ios swift navigationbar mfmailcomposeviewcontroller


【解决方案1】:

我看起来我找到了解决方法。不知何故,设置 composer.navigationBar.barTintColorUINavigationBar.appearance().barTintColor 不起作用。

解决方法是使用 UINavigationBar.appearance().setBackgroundImage(...) 并将 UIImage 设置为一种颜色作为背景

完整的工作代码:

UINavigationBar.appearance().setBackgroundImage(UIImage.from(color: UIColor.green), for: .default)
let composer = MFMessageComposeViewController()       
self?.present(composer, animated: true, completion: nil)

用一种颜色创建UIImage

extension UIImage {
    static func from(color: UIColor) -> UIImage {
        let rect = CGRect(x: 0, y: 0, width: 1, height: 1)
        UIGraphicsBeginImageContext(rect.size)
        let context = UIGraphicsGetCurrentContext()
        context!.setFillColor(color.cgColor)
        context!.fill(rect)
        let img = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return img!
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多