我正在尝试在UICollectionViewCell
中添加一个UIScrollView
。这个想法是,您可以使用pinch来缩放UIScrollView
(以及其中的图像),但scrollview似乎不能处理任何手势。我猜他们被UICollectionView
抓到了。
我已将UIScrollView
的委托设置为UICollectionViewCell
,但没有调用任何委托方法。
编辑:我已经用代码创建了一个github代码库(尽可能简化)。即使只有几行代码,我也看不出我做错了什么。
EDIT2:找到答案后,我在上面提到的repo中添加了修复,希望其他人也能找到帮助:)
发布于 2013-06-10 22:20:53
请在您的单元格中添加滚动视图,并在滚动视图中添加您当前的单元图像视图。然后使用以下代码:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
ImageContext *context = [self.images objectAtIndex:indexPath.row];
ImageCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"imageCell" forIndexPath:indexPath];
cell.cellScrollView.autoresizesSubviews = YES;
cell.cellScrollView.multipleTouchEnabled =YES;
cell.cellScrollView.maximumZoomScale = 4.0;
cell.cellScrollView.minimumZoomScale = 1.0;
cell.cellScrollView.clipsToBounds = YES;
cell.cellScrollView.delegate = self;
cell.cellScrollView.zoomScale = 1.0;
[cell.imageView setImage:[UIImage imageNamed:context.thumbImageUrl]];
return cell;
}
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{ NSLog(@"%i",scrollView.subviews.count);
for (UIView *v in scrollView.subviews) {
if ([v isKindOfClass:[UIImageView class]]) {
return v;
}
}
}
发布于 2013-06-06 19:15:46
检查所有相关视图的多点触控是否处于打开状态。默认情况下,iOS在大多数视图上禁用多点触控,以节省能源。
发布于 2013-06-08 21:40:02
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if (touch.view == [self myScrollView]) //<- whatever your scrollView is called
{
return YES;
}
return NO;
}
我不知道你的代码,但是试着使用上面的代码,看看你是否能过滤掉你想要的对象。上面的代码来自UIGestureRecognizerDelegate Protocol Reference。
https://stackoverflow.com/questions/16960556
复制相似问题