gpt4 book ai didi

uikit - 在 WatchKit 中访问系统颜色

转载 作者:行者123 更新时间:2023-12-05 07:07:14 25 4
gpt4 key购买 nike

我正在尝试为我的 Apple Watch 界面使用 UIKit 颜色。您可以在 iOS 中使用 UIColor 类属性(例如 .systemBackground 和其他属性)来完成此操作。例如:

let myColor = UIColor.systemBlue

编译 watchOS 扩展目标时出现错误:

Type 'UIColor' has no member 'UIColor.systemBlue'.

我想知道是否有其他方法来获取此系统颜色,如果没有——我需要的是获取一些 UI 元素的颜色,比如 SwiftUI 表格 View 行背景,它看起来非常类似于 UIColor.systemGray5.

@State private var isActive = false

var body: some View {
List {
Section() {
ForEach(self.dataSource) { item in
CustomCell()
.listRowPlatterColor(self.isActive ? Color(UIColor.systemGray5) : Color(.orange))
}
}
}
}

上面的代码无法编译,因为在 WatchKit 中找不到 UIColor.systemGray5。我试图创建一个在 iPhone 和 Watch 目标中都被起诉的类,它修复了 Xcode 自动完成。但当尝试将其用于 Apple Watch 目标时,该应用程序中断了。

我希望有一种方法,而不是找到正确的颜色并对其进行硬编码。

最佳答案

查看文档,UIColor.system-ish 仅适用于 iOS、Catalyst 和一些适用于 tvOS。您可以做的是扩展 UIColor 并创建您的 systemGray5:

extension UIColor {
static var mySystemGray5: UIColor {
return .init(red: 229/255, green: 229/255, blue: 234/255, alpha: 1)
}
}

并在您的代码中使用:

  ForEach(self.dataSource) { item in
CustomCell()
.listRowPlatterColor(self.isActive ? Color(UIColor.mySystemGray5) : Color(.orange))
}

关于uikit - 在 WatchKit 中访问系统颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62247557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com