6

有没有办法模糊/淡出 UIView 的边框?

到目前为止,我对核心图形几乎没有做任何事情。

4

2 回答 2

15

您可以尝试将 UIView 的 CALayer 设置为具有较大的阴影半径和透明度。就像是:

    #include <QuartzCore/QuartzCore.h>

...

    CALayer *layer = myView.layer;
    layer.shadowOpacity = .5;
    layer.shadowColor = [[UIColor blackColor] CGColor];
    layer.shadowOffset = CGSizeMake(0,0);
    layer.shadowRadius = 10;
于 2012-09-10T16:18:30.900 回答
2

使用 swift 版本添加示例:

    btnSignIn.layer.cornerRadius = btnSignIn.frame.height * 0.5
    btnSignIn.layer.shadowColor = UIColor.darkGray.cgColor
    btnSignIn.layer.shadowRadius = 4.0
    btnSignIn.layer.shadowOpacity = 1.0
    btnSignIn.layer.shadowOffset = CGSize(width: 0, height: 0)

结果:

在此处输入图像描述

请记住,如果您在 ib 编辑器中更改阴影设置,它将更改文本的阴影,而不是视图的边框。

您也可以创建一个类并在 IB Builder 中设置它:

class UIRoundedWhiteButton: UIButton {

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)

    layer.cornerRadius = frame.height * 0.5
    layer.shadowColor = UIColor.darkGray.cgColor
    layer.shadowRadius = 4.0
    layer.shadowOpacity = 1.0
    layer.shadowOffset = CGSize(width: 0, height: 0)
}...
于 2018-06-14T10:05:02.537 回答