使用swift,是否可以访问可访问的反转颜色功能?

Jac*_*son 4 xcode ios swift

苹果已经在手机中添加了一般>辅助功能>反转颜色的功能,我可以在我的程序中以某种方式使用它,例如当用户触摸屏幕时颜色反转吗?

Man*_*ala 6

我不知道有什么方法可以自动执行此操作,但是您可以使用 UIColor 上的扩展并访问子视图来自己反转颜色?

extension UIColor {
    var inverted: UIColor {
        var r: CGFloat = 0.0, g: CGFloat = 0.0, b: CGFloat = 0.0, a: CGFloat = 0.0
        self.getRed(&r, green: &g, blue: &b, alpha: &a)
        return UIColor(red: (1 - r), green: (1 - g), blue: (1 - b), alpha: a) // Assuming you want the same alpha value.
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,如果您想更新视图的特定属性,您可以执行以下操作:

  view.subviews.map { $0.backgroundColor = $0.backgroundColor.invertedColor }
  // And so on to change things like the tint color, text color, etc.
Run Code Online (Sandbox Code Playgroud)

抱歉,我不知道直接执行此操作的方法,但在此之前,我想这总比没有好。


Gre*_*ley 1

据我所知,没有这样的 API 调用,坦率地说,如果它可用,我会感到惊讶。一般来说,Apple 不会为单个应用程序提供系统范围的设置。但是,您可以自己实现此\xe2\x80\x94,但仅限于您自己的应用程序。

\n