M
M
Maxim Trofimov2016-12-02 18:00:20
Objective-C
Maxim Trofimov, 2016-12-02 18:00:20

TapGesture, how to determine the element that was clicked, or why does the CollectionView not work when clicking on a cell?

I have a CollectionView on the ViewController, it fills up normally - but when you click on it, nothing happens, and all connections are connected. It is advised to check by TapGesture - what happens when you click, but I don’t know how to do it, help pliz, how to display what .. what I clicked on, and the point on the screen that I click.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
M
Maxim Trofimov, 2016-12-05
@nuSan

Всё подключено правильно, но не работает метод делагата UICollectionViewDelegate - а так всё подключено правильно. щас попробую ещё с точками Gesture повозиться - может что-то перекрывает его, хотя не видно что это так((((

I
i_allar, 2016-12-03
@i_allar

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

Максим Глобак, 2016-12-05
@maximglobak

For the collection, a slightly different delegate, but its meaning is the same.
Tap gesture is better to put in the case when you need to drag this cell somewhere. Those. perform some other actions (gesture) with this cell.
If you just need to click on the cell, then it is better to use the delegate method
. Still, a little code to find the cell in the collection

//Сначала регистрируешь гестуре, потом определяешь функцию, которую он вызывает и в этой функции пишешь следующее
//Это точка нажатия относительно коллекции
    CGPoint gestureLocationInCollectionView = [gesture locationInView:self.collectionView];

// А тут находим индекс пас, но при его использовании проверяй всегда есть ли он на самом деле.
    NSIndexPath *indexPathForLocation = [self.collectionView indexPathForItemAtPoint:gestureLocationInCollectionView];

if (indexPathForLocation) {
//Code here 
}

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question