首页 > 解决方案 > 如何防止两个堆叠的 UIView 的阴影加倍并变厚?[迅速]

问题描述

我有两张直接堆叠在一起的卡片(UIViews)。两张卡片都使用以下样式应用了阴影:

static func styleCardView(_ cardStyle: UIView) {
    cardStyle.layer.shadowOpacity = 1
    cardStyle.layer.shadowOffset = CGSize(width: 0, height: 1.75)
    cardStyle.layer.shadowRadius = 1.7
    cardStyle.layer.shadowColor = UIColor.lightGray.cgColor
    cardStyle.layer.cornerRadius = 12 
}

在我将最上面的卡片拖离屏幕 (UIPanGesture) 后,卡片设置会重置,因此它们再次堆叠在中心,如下面的 gif 所示:

阴影问题 gif

当顶卡移动和重置到中心时,我试图消除阴影厚度的任何变化。

问题是起始点的阴影(两张牌堆叠)太厚,因为两张牌的阴影都堆叠在彼此的顶部。然后当顶部卡片从屏幕上移开时,只有底部卡片的阴影可见。但是,当顶卡重置到中间时,阴影粗细发生变化,卡的重置很明显。

有没有办法设置可见的最大阴影厚度或防止阴影堆叠?

标签: iosswiftxcodeuiviewshadow

解决方案


推荐阅读