【发布时间】:2017-05-19 10:24:23
【问题描述】:
我正在尝试创建一个具有圆角和阴影的ImageView,以赋予它一些深度。我能够为UIImageView 创建一个阴影,但是每当我添加代码以使其具有圆角时,它只有没有阴影的圆角。我有一个名为myImage 的IBOutlet,它位于viewDidLoad 函数内部。有人对如何使它工作有任何想法吗?我做错了什么?
override func viewDidLoad() {
super.ViewDidLoad()
myImage.layer.shadowColor = UIColor.black.cgColor
myImage.layer.shadowOpacity = 1
myImage.layer.shadowOffset = CGSize.zero
myImage.layer.shadowRadius = 10
myImage.layer.shadowPath = UIBezierPath(rect: myImage.bounds).cgPath
myImage.layer.shouldRasterize = false
myImage.layer.cornerRadius = 10
myImage.clipsToBounds = true
}
【问题讨论】:
-
如果您设置
clipsToBounds = true,您将永远无法看到超出范围的阴影。 -
我建议将
myImage放在另一个不会剪裁其边界的视图中,并将阴影应用到该视图。 -
那么只需设置 clipsToBounds = false ?
-
Clips to bounds 设置为 true 将剪切角,但会剪切阴影。这就是为什么你需要两个视图。一个带有阴影的容器,我剪裁了边界,里面有一个带有剪裁边界和圆角半径的图像。
-
所以如果我理解正确的话,将
myImage放在一个没有剪角并且有阴影的新 UIView 中??
标签: ios swift uiview uiimageview shadow