2016-03-24 13 views
0

初期化時に渡された画像にぼかし効果を追加するクラスを作成しようとしましたが、画像ビューでエラーを受け取りました。私はXcode 7.3、Swift 2.2を使用しています。ここで私のコードは、見てみてください。なぜUIImageViewを引数として渡せませんか?

これは、これがViewController.swiftで自分のコード

@IBOutlet weak var blurHeader: UIImageView! 

var addBlur = addBlurEffect(_: blurHeader) 

ファイルである。しかし、私は、このエラーの「インスタンスのメンバを取得 'blurHeader' にすることはできません

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'で使用 " instance error

可能な解決策を教えてくれたら、どんな助力があれば幸いです。ありがとう。

ああ、私も同じ結果で、次を試してみました:

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

    objectToBlur = objToBlur 
    blur() 
} 
+0

「var addBlur = addBlurEffect(objToBlur:blurHeader) 'はどうですか? (遊び場で働くと思われます) –

+0

また、なぜ地球上で 'AnyObject'を使いたいのですか?なぜ型の安全を捨てるのですか? – Hamish

+0

クラス名の冒頭に大文字を使用してください。そうしないと、私は個人的にあなたの家に来て、コンピュータを破壊します。 – matt

答えて

1

これには二つの問題があります。

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

まず、二行目がさえスウィフトではありませんが。それはちょうどナンセンスです。おそらく、あなたは意味:

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

しかし、あなたは別のプロパティを参照してプロパティ(addBlur)を初期化することはできませんので、あなたは、あなたがそれを示してきた少なくともない方法で、どちらかそれを言うことはできません(blurHeader )。

+0

Hey Matt、 私はもともとvar addBlur = addBlurEffect(objToBlur:blurHeader)というコードを持っていたことに注意してください。実際には_を使用することを示唆したXcodeでした。また、名前を明記せずにパラメータを呼び出して、アンダースコアを使用することもできます。初期化からプロパティを提案して削除し、何が起こるかを見てみましょう。ありがとう –

+0

@MarlonMingoあなたのコードはそのままコンパイルされません。私は理由を説明している。 'addBlurEffect(_:blurHeader)'を呼んでいるとはどういうことかわかりませんが、それはSwiftではないことを私は保証します。 – matt

+0

私は見る...ありがとう。 あなたの提案を使用して問題を解決できました。 {){}とViewController.swift IにおいてのviewDidLoad(FUNC VAR addBlur = addBlurEffect() オーバーライドを使用する:私は(INITを除去)および(UIImageView objToBlur)パラメータで代わり FUNCぼけをボケ関数を使用しましたsuper.viewDidLoad() //ビューをロードした後、通常はペン先から追加の設定を行います。 addBlur。 ぼかし(blurHeader) } –

関連する問題