在位于滚动视图上方的 SwiftUI 视图上使用 .shadow 修饰符,当其他视图重叠时可以看到可见的阴影线
Using the .shadow modifier on a SwiftUI View that sits above a scrollview, a visible shadow line can be seen when other views overlap
在我的应用程序底部,我有一个包含按钮的矩形(都在前景中)。然后我在它下面有另一个矩形,它是高度的一半,所以我可以在它上面添加阴影修改器。在它下面是一个滚动视图,其中包含一组使用 ForEach 生成的视图。
当它下面没有 ForEach 视图时,影子效果很好,影子代码也没什么花哨的。
ZStack(alignment: Alignment(horizontal: .leading, vertical: .top)) {
Rectangle()
.frame(height: 60)
.foregroundColor(.white)
.shadow(color: Color("LightDarkModeShadow"), radius: 20, x: 0, y: -5)
.opacity(0.33)
Rectangle()
.frame(height: 110)
.foregroundColor(Color("LightDarkModeBackground"))
但是,当滚动视图包含条目并且它们位于阴影下方时,会在视图上方显示一条线。它似乎没有正确混合。有什么办法可以解决这个问题,还是这只是设计使然?
感谢@RajaKishan 在评论中为我指明了正确的方向。滚动视图应用了 .padding(.bottom)。我认为它与矩形阴影对接并创建了一条线。我在滚动视图中添加了一个负填充值:
.padding(.bottom, -10)
问题现已解决!
在我的应用程序底部,我有一个包含按钮的矩形(都在前景中)。然后我在它下面有另一个矩形,它是高度的一半,所以我可以在它上面添加阴影修改器。在它下面是一个滚动视图,其中包含一组使用 ForEach 生成的视图。
当它下面没有 ForEach 视图时,影子效果很好,影子代码也没什么花哨的。
ZStack(alignment: Alignment(horizontal: .leading, vertical: .top)) {
Rectangle()
.frame(height: 60)
.foregroundColor(.white)
.shadow(color: Color("LightDarkModeShadow"), radius: 20, x: 0, y: -5)
.opacity(0.33)
Rectangle()
.frame(height: 110)
.foregroundColor(Color("LightDarkModeBackground"))
但是,当滚动视图包含条目并且它们位于阴影下方时,会在视图上方显示一条线。它似乎没有正确混合。有什么办法可以解决这个问题,还是这只是设计使然?
感谢@RajaKishan 在评论中为我指明了正确的方向。滚动视图应用了 .padding(.bottom)。我认为它与矩形阴影对接并创建了一条线。我在滚动视图中添加了一个负填充值:
.padding(.bottom, -10)
问题现已解决!