首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift 3Xcode故事板,添加box-shadow到UIView,就像CSS风格的box-shadow

Swift 3Xcode故事板,添加box-shadow到UIView,就像CSS风格的box-shadow
EN

Stack Overflow用户
提问于 2017-02-15 16:23:12
回答 3查看 10.7K关注 0票数 2

正如你所看到的,我想在单元格中每个UIView的边缘周围添加一个阴影,白色加灰色很难清楚地看到它的边界。

EN

回答 3

Stack Overflow用户

发布于 2017-02-15 16:33:41

设置视图的阴影属性以添加阴影。

SWIFT 3

代码语言:javascript
复制
YourView.layer.shadowOpacity = 0.7
YourView.layer.shadowOffset = CGSize(width: 3, height: 3)
YourView.layer.shadowRadius = 15.0
YourView.layer.shadowColor = UIColor.darkGray.cgColor

备注:将YourView替换为您想要阴影的视图。

票数 16
EN

Stack Overflow用户

发布于 2018-06-15 00:00:52

以下是我的方法:

您将创建一个名为ShadowView的新类。

代码语言:javascript
复制
import UIKit

@IBDesignable
class ShadowView: UIView {
    //Shadow
    @IBInspectable var shadowColor: UIColor = UIColor.black {
        didSet {
            self.updateView()
        }
    }
    @IBInspectable var shadowOpacity: Float = 0.5 {
        didSet {
            self.updateView()
        }
    }
    @IBInspectable var shadowOffset: CGSize = CGSize(width: 3, height: 3) {
        didSet {
            self.updateView()
        }
    }
    @IBInspectable var shadowRadius: CGFloat = 15.0 {
        didSet {
            self.updateView()
        }
    }

    //Apply params
    func updateView() {        
        self.layer.shadowColor = self.shadowColor.cgColor
        self.layer.shadowOpacity = self.shadowOpacity
        self.layer.shadowOffset = self.shadowOffset
        self.layer.shadowRadius = self.shadowRadius
    }
}

然后,您可以在故事板中将此类应用于视图,如下所示:

现在,您可以在属性检查器中编辑值:

票数 9
EN

Stack Overflow用户

发布于 2017-02-15 16:29:39

您可以根据需要选择不透明度。

代码语言:javascript
复制
override func awakeFromNib() 
{
        super.awakeFromNib()

        self.viewContainer.layer.shadowOffset =  CGSize(width: 0, height: 1)   // CGSizeMake(0, 1)
        self.viewContainer.layer.shadowColor = UIColor.black.cgColor
        self.viewContainer.layer.shadowRadius = 1.5
        self.viewContainer.layer.shadowOpacity = 0.65
        self.viewContainer.layer.cornerRadius = 1
        self.viewContainer.clipsToBounds = true
        self.viewContainer.layer.masksToBounds = false       
        self.layer.masksToBounds = false
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42244040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档