Swift - 自定义颜色主题和 SFSafariViewController

Posted

技术标签:

【中文标题】Swift - 自定义颜色主题和 SFSafariViewController【英文标题】:Swift - Custom color theme and SFSafariViewController 【发布时间】:2017-11-12 11:54:06 【问题描述】:

我将自定义颜色应用于多个视图,如下所示:

 let uiView = UIView.appearance()
 uiView.backgroundColor = .black

这会像我预期的那样改变 UIView 颜色,但稍后在应用程序中我触发了 SFSafariViewController。当 SFSafariViewController 出现时,它是全黑的。有没有办法识别视图是 SFSafariViewController 并改变它的颜色?

 let vc = SFSafariViewController(url: targetURL!, entersReaderIfAvailable: true)
 present(vc, animated: true, completion: nil)

【问题讨论】:

【参考方案1】:

我认为您将很难通过您的方法 - 更改 UIView 的背景颜色也会更改从 UIView 继承的每个视图的背景颜色,正如您发现的那样,它包括整个 SFSafariViewController - 按钮等等。

我建议更好的方法是更具体地确定要为其设置背景颜色的视图类型、UIButton、UITabBar 等等。如果您还需要更改实际的 UIView,则可以创建一个子类并在其上设置外观。您的 UIView 子类可以为空:

class MyCustomView: UIView 


然后你可以在这个视图上设置你的外观:

MyCustomView.appearance().backgroundColor = .black

在 Interface Builder 中,选择您的视图并为其设置自定义类:

【讨论】:

【参考方案2】:

没必要。

只需使用CSafariWebKit 并在 BarTintColor 和 TintColor 中设置您想要的颜色:

let vc = SafariViewController(url: url, barTintColor: nil, tintColor: nil)
vc.presentSafari(fromViewController: self, whenDidFinish: nil)

【讨论】:

以上是关于Swift - 自定义颜色主题和 SFSafariViewController的主要内容,如果未能解决你的问题,请参考以下文章

Excel自定义颜色美化单元格颜色配置技巧与自定义颜色主题

VS Code 自定义文件资源管理器窗口颜色主题

更改自定义文本字段背景颜色和文本颜色IOS Swift

自定义Sharepoint通信站点的主题和按钮颜色

自定义 Firefox 开发者开发工具颜色主题

Telerik winforms 主题颜色自定义