ios - 为什么阴影反射(reflect)在 subview 上

标签 ios swift uikit shadow

我有一个 View ,其中我正在以编程方式应用阴影。但不幸的是,这个阴影出现在这个特定 View 的所有 subview 上。任何原因。

    cellView.layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.25).cgColor
    cellView.layer.shadowOffset = CGSize(width: 0, height: 2)
    cellView.layer.shadowOpacity = 1.0
    cellView.layer.shadowRadius = 0.0
    cellView.layer.masksToBounds = false
    cellView.layer.cornerRadius = 4.0

    timeLabel = UILabel(frame: CGRect(x: 10, y: 5, width: 50, height: self.bounds.size.height - 30))
    timeLabel.font = AmeyoConstants.smallerFont
    timeLabel.textColor = UIColor.darkGray
    cellView.addSubview(timeLabel)

我只在 cellView 上应用了阴影,但在运行应用程序时,阴影也会自动出现在 timeLabel 上。谁能告诉我阴影从父 View 继承到 subview 的正确原因。

最佳答案

要使 View 具有阴影,它必须具有不透明的背景色,我们无法从您的代码段中看到,但您是否为 cellView 设置了背景色?

如果不是,那么阴影将不会应用于 View 本身,而是应用于它的 subview !

如果你想一想,一张透明的纸是没有影子的(因为它当然是透明的),但是如果你在上面添加不透明的物体,那么这些物体就会有影子。

现在,如果您想让工作表有阴影,那么您应该放一个不透明的工作表吗?在这种情况下,同样的规则适用于 iOS!

关于ios - 为什么阴影反射(reflect)在 subview 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48423222/

相关文章:

ios - 停止 UIScrollView 中的对象移动

javascript - Ajax 调用 Cordova ios SecurityError : DOM Exception 18

ios - AVPlayerViewController 无法通过 url 播放视频

ios - UITableView 删除按钮不会对手势使用react

ios - swift 和 UILabel : How to add padding and margin in Swift programmatically?

ios - 防止滚动到 pageviewcontroller 中的一页

javascript - ios和javascript中的三次贝塞尔曲线不同

swift - UILongPressGestureRecognizer 无法正常工作

ios - 如何生成包含尺寸大于设备屏幕的 View 的 PDF?

objective-c - 调用 dismissPopoverAnimated 或在弹出窗口外单击一次时,弹出窗口不会被关闭