首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取资源中声明的颜色的浅色或深色变体

获取资源中声明的颜色的浅色或深色变体
EN

Stack Overflow用户
提问于 2020-03-17 00:40:04
回答 2查看 1.1K关注 0票数 3

在我的资源中,我已经声明了两种不同的主题色,无论是亮的还是暗的外观,效果都很好。然而,我在应用程序中有一个特定的地方,在那里我需要使用颜色的浅色变体,而不管是否启用了暗模式。有没有其他方法可以在代码中获得这种颜色,除了将相同的颜色声明为只有一个变量的单独颜色之外?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-17 01:26:12

在SwiftUI中,如果需要为某些子视图使用轻量级变量,则强制为其指定.colorScheme就足够了,如下所示

颜色变体:

演示:

代码语言:javascript
运行
复制
var body: some View {
    VStack {
        Rectangle().fill(Color("testColor"))
            .frame(width: 100, height: 100)
            .environment(\.colorScheme, .light) // << force light
    }
    .frame(width: 300, height: 300)
    .background(Color("testColor")) // << system appearance
}
票数 6
EN

Stack Overflow用户

发布于 2021-01-14 22:57:55

如果您正在使用UIKit,那么UIColorresolvedColor(with traitCollection:)方法是覆盖默认配色方案的最佳选择。

如果你和我一样,不喜欢看到UIColors在你的SwiftUI代码中徘徊,下面是一种更快速的so y方式,可以获得相同的效果,到目前为止对我来说效果很好:

代码语言:javascript
运行
复制
extension View {
    @ViewBuilder
    func forceDarkVariant(_ forceDark: Bool) -> some View {
        if forceDark {
            self.environment(\.colorScheme, .dark)
        } else {
            self
        }
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60709874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档