Bor*_* Y. 5 uikit watchkit swiftui
我正在尝试为我的 Apple Watch 界面使用 UIKit 颜色。您可以在 iOS 中使用UIColor
诸如此类的类属性来完成此操作.systemBackground
。例如:
let myColor = UIColor.systemBlue\n
Run Code Online (Sandbox Code Playgroud)\n\n编译 watchOS 扩展目标时出现错误:
\n\n\n\n\n类型“UIColor”没有成员“UIColor.systemBlue”。
\n
我想知道是否有替代方法来获取此系统颜色,如果不是 \xe2\x80\x94 我需要的是获取某些 UI 元素的颜色,例如 SwiftUI 表视图行背景,它看起来与UIColor.systemGray5
.
@State private var isActive = false\n\nvar body: some View {\n List {\n Section() {\n ForEach(self.dataSource) { item in\n CustomCell()\n .listRowPlatterColor(self.isActive ? Color(UIColor.systemGray5) : Color(.orange))\n }\n }\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n上面的代码无法编译,因为UIColor.systemGray5
在 WatchKit 中找不到。我尝试创建一个在 iPhone 和 Watch 目标中都被起诉的类,它修复了 Xcode 自动完成功能。但当尝试将其用于 Apple Watch 目标时,该应用程序崩溃了。
我希望有一种方法,而不是找到正确的颜色并对其进行硬编码。
\n小智 1
查看文档,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)
}
}
Run Code Online (Sandbox Code Playgroud)
并在您的代码上使用,例如:
ForEach(self.dataSource) { item in
CustomCell()
.listRowPlatterColor(self.isActive ? Color(UIColor.mySystemGray5) : Color(.orange))
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1023 次 |
最近记录: |