繁体   English   中英

Swift中的UIView扩展

[英]UIView extension in Swift

我已经将UIView extension放置在以swift编写的实用程序类中。
但是,当我尝试从扩展名中调用方法时,

编译器告诉我

成员不存在

这是我的扩展名:

extension UIView {
    func addShadow() {
        layer.shadowColor = UIColor.black.cgColor
        layer.shadowOffset = CGSize(width: 0, height: 0)
        layer.shadowOpacity = 0.5
        layer.shadowRadius = 5
        clipsToBounds = false
    }
}

由于UIImage UIView子类,我认为我应该能够通过调用将方法应用于UIViewController的自定义MKAnnotation图像

myImage.addShadow()

但是,我得到了错误:

Value of type 'UIImage' has no member 'addShadow'

如果将方法放在UIImage扩展中,则会出现相同的错误。

我是否必须以某种方式告诉UIViewController有关实用程序类的信息,或者我的代码可能有什么问题?

您正在扩展UIView 不是UIImageView

extension UIImageView {

    func addShadow() {
        layer.shadowColor = UIColor.black.cgColor
        layer.shadowOffset = CGSize(width: 0, height: 0)
        layer.shadowOpacity = 0.5
        layer.shadowRadius = 5
        clipsToBounds = false
    }
}

另外请直接使用UIImageVIew ,而不是UIImage

编辑

假设您的评论,我认为您正在尝试修改MKAnnotationView 如果是这样,这是一个可以帮助您的问题。

如何在Swift中创建带有边框和阴影的圆角图像作为MKAnnotationView?

暂无
暂无

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

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