2017-04-23 98 views
1
@IBOutlet weak var selectorSemiView: UIView! 
@IBOutlet weak var blurEffect: UIVisualEffectView! 
@IBOutlet var outerAreaRecognizer: UITapGestureRecognizer! 
override func viewDidLoad() { 
    super.viewDidLoad() 
    selectorSemiView.layer.cornerRadius = 15 
    selectorSemiView.layer.shadowColor = UIColor.gray.cgColor 
    selectorSemiView.layer.shadowOffset = CGSize.zero 
    selectorSemiView.layer.shadowRadius = 7 

} 

selectorSemiView是一个容器视图UIView的阴影,cornerradius不工作

当我运行这个程序,没有阴影,没有圆角。

我的代码有什么问题?

回答

3

你的代码是好的,但你忘了设置不透明度,如果您需要了解更多信息,你可以得到另一个答案在SO,对于如

selectorSemiView.layer.cornerRadius = 15 
    selectorSemiView.layer.shadowColor = UIColor.gray.cgColor 
    selectorSemiView.layer.shadowOffset = CGSize.zero 
    selectorSemiView.layer.shadowOpacity = 1.0 
    selectorSemiView.layer.shadowRadius = 7.0 
    selectorSemiView.layer.masksToBounds = false 

输出

enter image description here

+1

当我包括selectorSemiView.clipsToBounds = true,有圆角但没有阴影,但是当我不包括selectorSemiView.clipsToBounds =真 ,有阴影,但现在圆角 –

+1

这是因为阴影应用**外**边界和“clipsToBounds”很好地剪辑出来。您需要添加相同大小的其他视图并添加阴影来伪造此行为。 – Rikh

0

你需要添加

selectorSemiView.clipsToBounds = true 
+1

尽管可能的答案,你还没有解释为什么这将工作。 – dfd