ios collectionview 怎么使cell滚动到指定的位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios collectionview 怎么使cell滚动到指定的位置相关的知识,希望对你有一定的参考价值。

参考技术A 你在点击cell的时候调用 - (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender ;
那不是有个sender嘛,你可以给它传值。

然后在-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 里的sender,就是你刚传的那个值。本回答被提问者和网友采纳

如果collectionView低于某些uiview,iOS如何使collectionView接收触摸

【中文标题】如果collectionView低于某些uiview,iOS如何使collectionView接收触摸【英文标题】:iOS how to make collectionView receive touches if it's below some uiview 【发布时间】:2015-09-22 02:41:19 【问题描述】:

我问一些不同的场景:

iOS How to make UIButton below UICollectionView receive touch?

但我也想知道是否可以在没有透明背景颜色的情况下将 collectionView 对齐到 uiview 下面并接收触摸?

然后我想在蓝色视图触发 collectionView 滚动行为时移动手指,并且我还想 UIButton 接收触摸。

命中测试不是解决方案。

为什么?

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event 
    if ([self pointInside:point withEvent:event]) 
        for (UIView *subview in [self.subviews reverseObjectEnumerator]) 
            CGPoint convertedPoint = [subview convertPoint:point fromView:self];
            UIView *hitTestView = [subview hitTest:convertedPoint withEvent:event];
            if (hitTestView) 
                return hitTestView;
            
        
        return self;
    
    return nil;

只是因为手指在蓝色视图时它没有被触发。

【问题讨论】:

【参考方案1】:

您可以使用 userInteractionEnabled=YES 子类化 UIView(蓝色),然后使用 hitTest

-(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event 
    id hitView = [super hitTest:point withEvent:event];
    if (hitView == self) return nil; // <--- pass-through if touch on UIView (blue view)
    else return hitView; // touch on children (UIButton)

【讨论】:

对不起,但这不是我的解决方案。因为蓝色视图它只是一个容器。例如,其中将包括一个 ImageView 甚至是 collectionView(用于滚动照片)。

以上是关于ios collectionview 怎么使cell滚动到指定的位置的主要内容,如果未能解决你的问题,请参考以下文章

当collectionView滚动时,如何使iOS collectionView的特定单元格淡出?

Swift iOS - 如何使 CollectionView 的单元格大小

scrollview添加手势 不影响子控件点击事件

ios collectionview 怎么获取header的indexpath

如何在ios objective-c 应用程序中使屏幕的全部内容滚动

UICollectionView 单元格配置太多次