swiftui - 如何更改 SwiftUI 编辑闪光效果的颜色

标签 swiftui placeholder shimmer

我为主屏幕添加了闪烁效果,如下面的代码。

VStack{
  TopView()
  HomeView()
}
.redacted(.placeholder)

我得到如下图所示的输出。

https://ibb.co/xFXQ2sk

闪光 View 显示彩色 View 的颜色,但普通 View 显示灰色。

我可以将整个微光 View 更改为灰色而不显示微光的彩色 View 吗?

最佳答案

一种方法可能是调整自定义 subview 以响应是否要求它们显示为密文。

例如,如果您有一个 View 在红色背景中添加一段文本,例如:

struct LabelView: View {
  var text: String

  var body: some View {
    Text(text)
       .padding()
       .background(Color.red)
  }
}

然后您可以将其调整为在编辑时使用灰色:

struct LabelView: View {
  @Environment(\.redactionReasons) var redactionReasons
  var text: String

  var body: some View {
    Text(text)
       .padding()
       .background(redactionReasons.contains(.placeholder) ? Color.gray : Color.red)
  }
}

关于swiftui - 如何更改 SwiftUI 编辑闪光效果的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70107089/

相关文章:

macos - 如何在 SwiftUI 生命周期中显示 NSPopover?

asp.net - 以编程方式将用户控件加载到占位符 (asp.net)

firefox - 无法使用 moz-placeholder 使占位符居中

android - 如何在Kotlin中以编程方式设置闪光布局?

安卓垂直微光

mvvm - SwiftUI 和 MVVM : How to animate "list elements change" when view model changes the "data source" (`@Publish items` ) itself

swiftui - 如何为 SwiftUI ViewRepresentable 自定义 MKMapView 委托(delegate)操作?

ios - 如何在 SwiftUI 中通过点击手势制作放大缩小按钮动画?

html - CSS - 即使属性相同,占位符文本也不同