为什么我无法将UIImageView作为参数传递?

时间:2016-03-24 12:28:42

标签: ios uiimageview swift2.2

我试图创建一个类,它在初始化时向传递给它的图像添加模糊效果,但是在图像视图中传递错误。我正在使用Xcode 7.3,Swift 2.2;这是我的代码,请看一下。

这是我的班级

class addBlurEffect: UIViewController {

private var newBlurEffect = UIVisualEffectView(effect: UIBlurEffect(style: .Light))
private var objectToBlur = UIImageView()

convenience init(objToBlur: AnyObject) {
    self.init()

    objectToBlur = objToBlur as! UIImageView
    blur()
}

func blur() {
    newBlurEffect.frame = objectToBlur.bounds
    objectToBlur.addSubview(newBlurEffect)
}

}

这是我在ViewController.swift文件中的代码

@IBOutlet weak var blurHeader: UIImageView!

var addBlur = addBlurEffect(_: blurHeader)

但是我收到了这个错误"实例成员' blurHeader'不能用于类型' ViewController'" instance error

在向我指出可能的解决方案时,非常感谢任何帮助。感谢。

哦,我也尝试了以下相同的结果:

convenience init(objToBlur: UIImageView) {
    self.init()

    objectToBlur = objToBlur
    blur()
}

1 个答案:

答案 0 :(得分:1)

这有两个问题:

@IBOutlet weak var blurHeader: UIImageView!
var addBlur = addBlurEffect(_: blurHeader)

首先,第二行甚至不是Swift。这只是胡说八道。也许你的意思是:

@IBOutlet weak var blurHeader: UIImageView!
var addBlur = addBlurEffect(objToBlur:blurHeader)

但是你不能说这个,至少不是你已经表现出来的方式,因为你不能通过引用另一个属性来初始化一个属性(addBlur)({ {1}})。