2017-07-31 4 views
0

私は速くて新しく、これが可能かどうか確信が持てませんでしたが、UICollectionViewのスクロールが有効になっているところで問題が発生しています。デフォルトでは、スクロールが有効になります。しかし、ユーザーが十分な長さを保持している場合は、スクロールを無効にしてUIPanGestureRecognizerを有効にします。私はUILongPressの後にUIPanGestureを有効にすることに問題があります。パンジェスチャーが完了したら、スクロールを再度有効にして、パンを無効にする必要があります。UIPongGestureRecognizerはUILongPressGestureの後でのみ有効にするにはどうすればよいですか?

答えて

0

まず、コンパイラは変数にデフォルト値がないと不平を言っています。

これを回避するには、initializeメソッドを追加してそこにジェスチャを設定します。

また、デフォルト値nilの変数Optionalとして変数を設定することもできます。しかしその後、あなたは本当の価値を得るために展開する必要があります。

それとも本当これが何であるかを知っている場合:

class YourViewController: xxxx, yyyy { 
    lazy var panGesture: UIPanGestureRecognizer! = { 
     let pan = UIPanGestureRecognizer(… 
     pan.delegate = self 
     return pan 
    } 
… 
} 

第二に、あなたは助けるためにUIGestureRecognizerDelegateを使用することができます。


最初は、パンのジェスチャーが無効になっています。長時間押すと、コレクションビューisScrollEnabledが無効になり、パンジェスチャーが有効になります。 (パンジェスチャーが終了した後、パンジェスチャーを無効にしてコレクションビューisScrollEnabledを有効にします)

関連する問題