iOS 13引入了语义颜色:一种指定颜色的目的而不是其实际值的方法。这允许颜色在启用暗模式时自动调整。 在UIKit中,可以通过UIColor上的静态成员(例如UIColor.label()、UIColor.secondaryLabel()等)轻松访问这些颜色。在this documentation page上可以找到所有可用的语义颜色的广泛列表。 然而,SwiftUI的Color类型没有等效的静态成员。因此,这将是无效的: // Error: Type 'Color?' has no member 'secondaryLabel'
var body: som
在iOS13中,我执行以下操作将视图绑定到模型:
class MyModel: ObservableObject {
@Published var someVar: String = "initial value"
}
struct MyView: View {
@ObservedObject var model = MyModel()
var body: some View {
Text("the value is \(model.someVar)")
}
}
在iOS14中有一个名为@StateOb
是否有一种方法可以系统地访问标准的、动态的SwiftUI视图背景颜色,而不管用户是处于光模式还是黑暗模式?
例如,我知道以下内容可用于获取主(例如文本)颜色:
let textColor = Color.primary
...but,我看不出有什么类似的东西可以得到背景色。
let backgroundColor = Color.??? // Not available
我正在寻找对iOS和macOS都有效的东西。
我试图添加背景颜色到底部的安全区域列表视图。我知道如何在列表单元格中添加背景颜色,但它不适用于安全区域。有什么办法吗?
注意:我试过ZStack和.edgesIgnoringSafeArea,我需要使用SwiftUI 2.0列表视图,而不是LazyVStack或SwiftUI 1.0 (iOS 13) List View
List {
ForEach(0..<100) { index in
Text(String(index))
.listRowBackground(Color.red.edgesIgnoringSafeArea(.all))
}
}
我向UIColor添加了一个扩展,并提供了一个向SwiftUI的Color快速转换的函数。很简单:
import Foundation
import SwiftUI
import UIKit
@available(iOS 13, macOS 10.15, *)
public extension UIColor {
/// Converts the platform specific color object to a swiftUI color struct.
/// - Returns: Equivalent SwiftUI color
func pso