コレクションビューは垂直スクロールで、デバイスの全画面(全画面)をカバーしています。コレクションを左右にスワイプします。スクロール時に垂直方向にスクロールしません。
私はコレクションビューのためにSwipe Left and Right
ジェスチャーを登録しています。
//------------right swipe gestures in collectionView--------------//
let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.rightSwiped))
swipeRight.direction = UISwipeGestureRecognizerDirection.Right
self.collectionView.addGestureRecognizer(swipeRight)
//-----------left swipe gestures in collectionView--------------//
let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.leftSwiped))
swipeLeft.direction = UISwipeGestureRecognizerDirection.Left
self.collectionView.addGestureRecognizer(swipeLeft)
問題:左 スワイプ、右のジェスチャーコールバックcollectionViewが縦にスクロールしている間に発生しません。
これには簡単な回避策がありますか?ここ
は私collectionViewをクリックソリューションのために、解決EDIT 1
のように見えている私の全体のViewControllerクラスここ
import UIKit
class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource {
@IBOutlet weak var collectionView: UICollectionView!
let reuseIdentifier = "cell" // also enter this string as the cell identifier in the storyboard
var items = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
collectionView.dataSource = self
collectionView.delegate = self
//------------right swipe gestures in collectionView--------------//
let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.rightSwiped))
swipeRight.direction = UISwipeGestureRecognizerDirection.Right
self.collectionView.addGestureRecognizer(swipeRight)
//-----------left swipe gestures in collectionView--------------//
let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.leftSwiped))
swipeLeft.direction = UISwipeGestureRecognizerDirection.Left
self.collectionView.addGestureRecognizer(swipeLeft)
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.items.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
// get a reference to our storyboard cell
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! CustomCell
// Use the outlet in our custom class to get a reference to the UILabel in the cell
cell.lable.text = self.items[indexPath.item]
cell.backgroundColor = UIColor.yellowColor()
return cell
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
print(indexPath.row)
}
func rightSwiped()
{
print("right swiped ")
}
func leftSwiped()
{
print("left swiped ")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
あるhere
解決..ソリューションは、質問で述べたように全体のViewControllerは同じままになりますが私の答え –