繁体   English   中英

界面生成器中的iOS阴影视图

[英]iOS shadow view in interface builder

我正在尝试通过界面生成器向某些视图添加阴影。 我似乎无法在我的观点上留下阴影。 我看到的所有资源都指向同一代码,所以我不确定自己在做什么错。

界面生成器

界面生成器

Interface Builder扩展代码

import Foundation
import UIKit

extension UIView {

    //cut irrelevant code for SO Question

    @IBInspectable
    var masksToBounds: Bool {
        get {
            return layer.masksToBounds
        }
        set {
            layer.masksToBounds = newValue
        }
    }


    // Shadow handling
    @IBInspectable
    var shadowColor: UIColor? {
        get {
            if let color = layer.shadowColor {
                return UIColor(cgColor: color)
            }
            return nil
        }
        set {
            if let color = newValue {
                layer.shadowColor = color.cgColor
            } else {
                layer.shadowColor = nil
            }
        }
    }

    @IBInspectable
    var shadowOpacity: Float {
        get {
            return layer.opacity
        }
        set {
            layer.opacity = newValue
        }
    }


    @IBInspectable
    var shadowRadius: CGFloat {
        get {
            return layer.shadowRadius
        }
        set {
            layer.shadowRadius = newValue
        }
    }

    @IBInspectable
    var shadowOffset: CGSize {
        get {
            return layer.shadowOffset
        }
        set {
            layer.shadowOffset = newValue
        }
    }


}

视图布局

在此处输入图片说明

这是结果

在此处输入图片说明

我想这是您要添加阴影的自定义搜索栏。 我猜它不可见的原因是因为您在控制器和情节提要中的视图均相同。 尝试使情节提要视图具有一个容器视图,并在情节提要视图中添加一些填充,然后将阴影添加到该容器视图。 这可能会显示一些结果。

您的shadowOpacity属性正在访问错误的layer属性。 它的访问layer.opacity当它应该是layer.shadowOpacity 另外,您的shadowRadius太大了,应该大约为5(当然,这取决于您要做什么),而不是500。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM