2016-04-05 2 views
1

Я использую UICollectionView для отображения продуктов из внешнего API. Продукты прекрасно отображаются в коллекции, но по какой-то причине я не могу выбрать ни одну из ячеек. Я могу выбрать первую ячейку, но только когда прокручиваю вверх, а затем быстро коснусь первой ячейки. Я использую раскадровку для создания segue, а в контроллере я передаю данные в следующий вид. Код ниже:UICollectionView разрешает выбор первой ячейки

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
    return self.tableData.count 
} 

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
    let cell: ProductsViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("productViewCell", forIndexPath: indexPath) as! ProductsViewCell 

    let product = tableData[indexPath.row] 

    cell.configureWithProduct(product, categoryId: "") 

    return cell 
} 

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { 
    print("Cell \(indexPath.row) selected") 
} 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { 
    if (segue.identifier == "productDetails") { 
     let svc = segue.destinationViewController as! ProductViewController; 

     let indexPaths : NSArray = self.collectionView!.indexPathsForSelectedItems()! 
     let indexPath : NSIndexPath = indexPaths[0] as! NSIndexPath 

     let product = tableData[indexPath.row] 
     svc.productId = product["merged"][0]["id"].int 

    } 
} 

ответ

1

Убедитесь, что переход идет от вашей CollectionView клетки к вашему ViewController

Проверьте prepareForSegue вызывается, и ваш didSelectItemAtIndexPath также вызывается при попытке нажать на ячейку.

Также проверьте, если у вас есть какие-либо взгляды на вершине вашего CollectionView

Убедитесь, что выбранные.

View Interaction

+0

didSelectItemAtIndexPath не вызывается, он показывает оператор печати, и это утверждение не показывается. Я только что проверил, что нет представления над представлением коллекции. Вид коллекции свитки отлично, но я не могу выбрать ячейку. –

+0

Выяснил это. Я добавил представление о жесте в коде и не учитывал его. Благодаря! –

+0

Отлично, что вы это поняли –

Смежные вопросы