首页 > 解决方案 > 在位于滚动视图上方的 SwiftUI 视图上使用 .shadow 修饰符,当其他视图重叠时可以看到可见的阴影线

问题描述

在我的应用程序的底部,我有一个包含一个按钮的矩形(都在前景中)。然后我在它下面有另一个矩形,它是高度的一半,所以我可以在它上面添加一个阴影修改器。下面是一个滚动视图,其中包含一组使用 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"))

但是,当滚动视图包含条目并且它们位于阴影下方时,可以在视图上方看到一条线。它似乎没有正确混合。有没有办法解决这个问题,或者这只是设计使然?

影线

标签: iosswiftiphonexcodeswiftui

解决方案


感谢@RajaKishan 在评论中为我指明了正确的方向。滚动视图已应用 .padding(.bottom) 。我认为它与矩形阴影对接并创建了一条线。我在滚动视图中添加了一个负填充值:

.padding(.bottom, -10)

现在问题已经解决了!

固定的


推荐阅读