gpt4 book ai didi

SwiftUI 自定义重音颜色不适用于物理设备(iOS 13),但适用于其他任何地方(iOS 14.0+)

转载 作者:行者123 更新时间:2023-12-04 12:32:32 26 4
gpt4 key购买 nike

在我的 SwiftUI 中 View我有一个 Image我从 Assets 中加载的。我已经设置了 foregroundColoraccentColor ,我还在 Assets 中将其设置为我的自定义 AccentColor这将在整个应用程序中使用。
Assets :
asset
内容 View 主体:

var body: some View {
Image("MyImageName")
.resizable()
.renderingMode(.template)
.foregroundColor(.accentColor)
.frame(width: 32, height: 32, alignment: .center)
}
预览和模拟器在右侧显示图像 foregroundColor .但是,在物理设备上运行时, foregroundColor以某种方式保持默认的蓝色 accentColor的电话。
预览:

模拟器:

真实设备:

为什么会发生这种情况?我如何确保 AssentColor无论 iOS 版本如何,都可以跨设备工作而无需修改 iPhone 上的任何设置?调试详情:设备iOS版本为iOS 13.5.1和Xcode 12.0.1。

最佳答案

因此,在进一步测试时,我发现即使 accentColor可从 iOS 13.0 获得, 定制accentColor仅可从 iOS 14.0 获得.所以我创建了一个扩展来使用 accentColor从 Assets 手动在 iOS 13并在 iOS 14.0 中正常工作以上。

extension Color {

static var accent: Color {
if #available(iOS 14.0, *) {
return accentColor
} else {
return Color(#colorLiteral(red: 0.5, green: 0.5, blue: 0.5, alpha: 1))
}
}
}

关于SwiftUI 自定义重音颜色不适用于物理设备(iOS 13),但适用于其他任何地方(iOS 14.0+),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64350713/

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