UIView阴影,cornerradius不起作用。

4
@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是一个容器视图。

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

我的代码有什么问题?

2个回答

10

你的代码没问题,但你忘记设置透明度了。如果需要更多信息,可以在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

输出

在此输入图片描述


3
еҪ“жҲ‘ж·»еҠ selectorSemiView.clipsToBounds = trueж—¶пјҢдјҡеҮәзҺ°еңҶи§’дҪҶжІЎжңүйҳҙеҪұпјӣеҪ“жҲ‘дёҚж·»еҠ selectorSemiView.clipsToBounds = trueж—¶пјҢдјҡжңүйҳҙеҪұдҪҶжҳҜжІЎжңүеңҶи§’гҖӮ - Junwoo Lee
2
这是因为阴影是应用在视图边界外部,而clipsToBounds则会将其裁剪掉。你需要通过添加一个相同大小的另一个视图,并在其上添加阴影来模拟此行为。 - Rikh
为什么使用这种解决方案应用阴影时,裁剪边界不起作用?即使我将高度设置为0,内部内容仍然显示。 - Mitesh Dobareeya

1
你需要添加


selectorSemiView.clipsToBounds = true

4
虽然这是一个可能的答案,但你没有解释为什么会起作用。 - user7014451
当我将此属性设置为true时,根本没有显示任何内容。 - inexcitus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接