我已经在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/