【问题标题】:SwiftUI 2 customizing GraphicalDatePickerStyle()SwiftUI 2 自定义 GraphicalDatePickerStyle()
【发布时间】:2021-01-04 22:10:39
【问题描述】:

所以我有一个日期选择器,我试图在暗模式下实现——它有几个图形故障——即日历上选定的日期有一个白色的文本颜色,有什么办法可以解决这个问题吗?我用红色圆圈突出了问题区域,基本上我只需要能够更改切换颜色并将今天的日期(当它被选中时)更改为黑色 textColor:

DatePicker("", selection: self.$Time, in: Date()..., displayedComponents: [.date, .hourAndMinute])
    .datePickerStyle(GraphicalDatePickerStyle())
    .colorMultiply(Color.black)
    .colorInvert()
    .foregroundColor(Color.white)
    .background(Color.black)

有人对如何解决这个问题有任何想法吗?

【问题讨论】:

  • 不确定我是否理解您试图实现的目标。标准控件支持开箱即用的暗模式。
  • @Asperi 1) 我知道他们支持标准控件,但我想让用户选择在应用程序内切换配色方案。我要做的就是制作一个外观和功能都很好的图形日期选择器——我在问题上附加了一张图片,这样你就可以看到我在说什么,AM/PM 切换是不可见的,因为文本是白色的,当你选择今天作为所选日期,因为文本颜色为白色,您看不到数字。有什么想法吗?

标签: swift xcode datepicker swiftui darkmode


【解决方案1】:

自定义某些 SwiftUI 元素存在限制。我也对此进行了测试,看起来在暗模式下,当前日期会自动出现一个白色突出显示的圆圈,这是不可自定义的。我会提出以下建议,在暗模式下使用灰色强调色:

@Environment(\.colorScheme) var colorScheme: ColorScheme
    
    var body: some View {
        DatePicker("", selection: $date, in: Date()..., displayedComponents: [.date, .hourAndMinute])
            .datePickerStyle(GraphicalDatePickerStyle())
            .accentColor(colorScheme == .dark ? Color.secondary : Color.primary)
            .background(Color(UIColor.systemBackground))

    }

【讨论】:

  • 我玩了一些口音颜色,得到了我满意的东西——谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-23
相关资源
最近更新 更多