didSelectItemAtIndexPath

didSelectItemAtIndexPath

我已经在UIscrollview内部实现了不可滚动的UICollectionView。
滚动视图的大小为100x100,集合视图的大小为100x200;
滚动视图的内容大小为100x200。

我的问题是,当我触摸某些单元格(100x100矩形中的单元格)时,didSelectItemAtIndexPath没有得到调用。

启用了单元的用户交互。当我将滚动视图的高度增加到等于集合视图的高度时,所有单元格都是可触摸的。
提前致谢。

最佳答案

因为scrollView与Cell重叠...最好的方法是在UIScrollView上添加水龙头手势,例如,

UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gestureAction:)];
[recognizer setNumberOfTapsRequired:1];
self.scrollViu.userInteractionEnabled = YES;
[self.scrollViu addGestureRecognizer:recognizer];


在cellForItemAtIndexPath方法和Write手势操作方法中添加上述代码,例如

-(void)gestureAction:(UITapGestureRecognizer *) sender
{
    CGPoint touchLocation = [sender locationOfTouch:0 inView:self.YourCollectionViewName];
    NSIndexPath *indexPath = [self.YourCollectionViewName indexPathForRowAtPoint:touchLocation];

    NSLog(@"%d", indexPath.item);
}


在上面的手势(操作)方法中,您可以获得与didSelectItemAtIndexPath相同的indexPath。

关于objective-c - UIScrollView内部的UICollectionView的didSelectItemAtIndexPath没有被调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30050053/

10-12 13:02