【问题标题】:Change Safari View Controller Done Button tint?更改 Safari 视图控制器完成按钮的颜色?
【发布时间】:2016-02-09 13:04:52
【问题描述】:

我可以更改底部 UI 栏:

UIBarButtonItem.appearance().tintColor = UIColor.redColor()

找不到如何使用右上角的“完成”按钮执行相同操作。

这是在 AppDelegate.swift 中起作用的地方:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.
    UIBarButtonItem.appearance().tintColor = UIColor.redColor()

    return true
}

添加这个不起作用:

UINavigationBar.appearance().tintColor = UIColor.redColor()

【问题讨论】:

标签: ios swift


【解决方案1】:

要更改 de Done 按钮颜色以及底部 UI 栏,您必须设置 SFSafariViewController 视图的 tintColor 属性

示例:

let webVC = SFSafariViewController(URL: yourURL)
webVC.view.tintColor = UIColor.redColor()

【讨论】:

    【解决方案2】:

    Ismael 的回答不适用于我的 iOS 10。由于 iOS 10 SFSafariViewController 有一个属性 preferredControlTintColor 来设置按钮的颜色。另一个新属性是preferredBarTintColor fyi。

    这是我在 Swift 3 中的方法:

    let svc = SFSafariViewController(url: URL(string: "<YOUR_URL_STRING>")!)
    
    if #available(iOS 10.0, *) {
        svc.preferredControlTintColor = UIColor.red
    } else {
        svc.view.tintColor = UIColor.red
    }
    
    self.present(svc, animated: true, completion: nil)
    

    【讨论】:

    • 这在 iOS 10 中对我不起作用。只影响底部工具栏的按钮。
    【解决方案3】:

    添加这个作品:

    UIButton.appearance().tintColor = UIColor.redColor()
    

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
    • @PetroKorienev 你有什么不清楚的地方?有效的代码就在那里。
    • 这不是解决方案,因为您的代码适用于应用程序中的每个按钮,这不是一个好的解决方案。
    • @Bartłomiej Semańczyk 这就是我的意图——每个按钮。
    • @EricD 这就是我的意图——每个按钮。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多