2016-05-12 6 views
4

をcollectionViewセル内のUIStackViewに追加しようとしましたが、アプリがクラッシュするたびに発生します。 (すべてIBOutletsが接続されています)これは私がここで間違っている何かがありますか?UIStackViewにタップジェスチャーを追加

let fGuesture = UITapGestureRecognizer(target: self, action: #selector(self.showF(_:))) 
cell.fstackView.addGestureRecognizer(fGuesture) 

func showF(sender: AnyObject){ 
     print(111) 
    } 
+1

... 0.1秒の遅延を追加し、それが正常に動作する必要があり、タイマーやGCDを使用してみてくださいあなたのクラス名 –

+0

クラッシュがどのように見えるか(コンソール出力) – osxdirk

+0

Swift 4を使用している場合は、showFで@objcが必要です。 –

答えて

3

は、タッチ可能なスタックビューですか? いいえの場合はこれを追加します。

cell.fstackView.isUserInteractonEnabled = true 
0

アプリはfatal error: unexpectedly found nil while unwrapping an Optional valueによるクラッシュした場合 - あなたは、スタックビューにジェスチャー認識を追加する前に、いくつかの遅延を追加する必要があります。

コレクションビューのセルサブクラスのinitまたはコレクションビューのデリゲートメソッドのスタックビュープロパティにアクセスする場合、スタックビューはまだ初期化されていない可能性があります。 `#selector(self.`チェンジ` self`への

Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(prepareStackView), userInfo: nil, repeats: false) 

...

@objc func prepareStackView() { 
    let tap = UITapGestureRecognizer(target: self, action: #selector(stackViewTapped)) 
    myStackView.addGestureRecognizer(tap) 
} 
関連する問題