Есть ли способ, которым я могу получить координаты щелкнутой точки внутри коллекцииViewCell? Я хочу сделать метод A, если я нажал на прямоугольник с координатой Y < 50, и метод B, если Y> 50.получить CGPoint внутри didSelectItemAtIndexPath метод CollectionView
3
A
ответ
9
Существует также вариант B, чтобы подкласс UITableViewCell и получить расположение от UIResponder
класса:
@interface CustomTableViewCell : UITableViewCell
@property (nonatomic) CGPoint clickedLocation;
@end
@implementation CustomTableViewCell
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
UITouch *touch = [touches anyObject];
self.clickedLocation = [touch locationInView:touch.view];
}
@end
Затем получить расположение от TableViewCell это сам:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//get the cell
CustomTableViewCell *cell = (CustomTableViewCell*)[tableView cellForRowAtIndexPath:indexPath];
//get where the user clicked
if (cell.clickedLocation.Y<50) {
//Method A
}
else {
//Method B
}
}
1
Если у вас есть пользовательский UICollectionViewCell
, вы можете добавить UITapGestureRecognizer
в ячейку и получить точку касания в обработчике touchhesBegan. Пример:
//add gesture recognizer to cell
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] init];
[cell addGestureRecognizer:singleTap];
//handler
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:self.view];
if (touchPoint.y <= 50) {
[self methodA];
}
else {
[self methodB];
}
}
Смежные вопросы
- 1. collectionView: didSelectItemAtIndexPath - не называется
- 2. collectionView, didSelectItemAtIndexPath some issue
- 3. Swift CollectionView didSelectItemAtIndexPath не работает
- 4. iOS unind CollectionView at didSelectItemAtIndexPath
- 5. DidSelectItemAtIndexPath не работает с collectionview
- 6. iOS Почему метод collectionView: didSelectItemAtIndexPath: нельзя вызывать из UITapGestureRecognizer?
- 7. При вызове -reloadData, -collectionView: didSelectItemAtIndexPath: not called
- 8. collectionView: didSelectItemAtIndexPath не вызывается на tap
- 9. изменить ячейку imageView в uicollectionview didSelectItemAtIndexPath метод
- 10. CGPoint метод
- 11. didSelectItemAtIndexPath метод не работает в UICollectionView
- 12. Какой метод вызывается до didSelectItemAtIndexPath в UICollectionView ..?
- 13. didSelectItemAtIndexPath не работает нормально
- 14. Как предотвратить метод collectionView: метод делегирования didSelectItemAtIndexPath, вызываемый более одного раза
- 15. CollectionView внутри ViewController
- 16. TapGesture внутри collectionView
- 17. [ViewController row]: непризнанный селектор, отправленный экземпляру в collectionView didSelectItemAtIndexPath
- 18. Вызов UICollectionView # reloadData в UICollectionViewDelegate # CollectionView: didSelectItemAtIndexPath: скрывает все клетки
- 19. CGPoint внутри CGImageRef
- 20. Зачем запускать viewDidLoad до didSelectItemAtIndexPath?
- 21. Collection View didSelectItemAtIndexPath segue
- 22. didSelectItemAtIndexPath не работает с пользовательской ячейкой
- 23. ProgressView внутри заголовка CollectionView
- 24. CollectionView внутри другой CollectionViewCell
- 25. UICollectionViewCell не редактируется в didSelectItemAtIndexPath
- 26. Добавление анимации к кнопке внутри ячейки collectionview
- 27. collectionView сделалSelectItemAtIndexPath
- 28. ИОСА как получить изображение из CollectionView методы клеточной didSelectItemAtIndexPath из cell.contentview.subview [0]
- 29. didSelectItemAtIndexPath pushViewController
- 30. UICollectionView selectItemAtIndexPath не вызывает didSelectItemAtIndexPath