我有一个markerview(uiview),它会反复不断地遍历我要检测的一堆uicollectionviewcell,并可能更改检测到的那些单元格的颜色,并在标记经过该单元格时将其重置回去。

这是我到目前为止所拥有的:

View did appear : 
CADisplayLink *displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(displayLinkHandler)];
            [displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];

- (void) displayLinkHandler {

    id presentationLayer1 = marker.markerLine.layer.presentationLayer;

    for (NSIndexPath* cellPath in [seqcollectionview indexPathsForVisibleItems]) {

        UICollectionViewCell *cell = [seqcollectionview cellForItemAtIndexPath:cellPath];

        id presentationLayer2 = cell.layer.presentationLayer;

        BOOL nowIntersecting = CGRectIntersectsRect([presentationLayer1 frame], [presentationLayer2 frame]);

        // I'll keep track of whether the two views were intersected in a class property,
        // and therefore only display a message if the intersected state changes.

        if (nowIntersecting != wasIntersected) {

            if (nowIntersecting && cell.selected) {
                NSLog(@"row is: %d section is: %d", [cellPath row], [cellPath section]);

                cell.backgroundColor = [UIColor whiteColor];


            }else{


                    cell.backgroundColor = [UIColor colorWithRed:1 green:0.855 blue:0.741 alpha:1];

            }
            wasIntersected = nowIntersecting;
        }
    }

}

到目前为止,这是可行的,但是要更改颜色的延迟实在太多了!

干杯

  ask by ipalibowhyte translate from so

本文未有回复,本站智能推荐:

1回复

如何检测何时绘制了UIView

我正在尝试创建一个简单的像素绘图应用程序。 我已经进行了一些研究,但实际上并不知道从哪里开始,因此我一直在开发人员站点中查看一些示例。 我打算创建一个收集单元格的收集视图,当用户触摸或在屏幕上四处滑动时,如果该触摸或滑动超过了一个收集单元格,我想将该收集单元格的背景色更改为当前选定的颜色
1回复

UICollectionViewCells重叠

我正在使用UICollectionView在我的应用程序中显示数据。 现在的问题是,当我滚动视图时,有时单元格位置不会保持稳定。 它们开始彼此重叠。 我检查了下面方法提供的值。 他们是正确的。 这是我的代码: 我正在使用默认布局, 有人认为我注意到UICollectio
2回复

具有动态高度的UICollectionViewCells

根据我下载的某些内容确定UICollectionViewCell大小的模式是什么? 我不知道创建单元格时的大小-在我下载内容之后的某个时间,该单元格将以其高度回调。 我将在collectionview上调用什么以使其重新布局其单元格? 我面对了表格视图,最终根据单元格中的字符串和控件计
2回复

UICollectionViewCells之间的最小空间

我一直在尝试使用UICollectionView增加单元格之间的距离,我似乎无法更改单元格之间的间距。 我的目标是尝试使单个单元格居中并水平滑动以转到下一个单元格。 我试过使用这个: 但这似乎并没有增加像元之间的间距。 我知道单元格可以是任何宽度或高度,但是我需要保持原样的尺寸以使
1回复

重新定位UICollectionViewCells?

我想设置我的UICollectionViewCell的位置。 在对此进行了一些研究之后,我发现了一篇解释该过程的文章,但是在Objective-C中。 我相信我翻译正确,但是无法正常工作。 这是问题的链接: 如何设置UICollectionViewCell的位置? 这是Objec
4回复

如何删除UICollectionViewCells之间的空间?

我试图删除UICollectionView之间的空间,这是设备的屏幕截图 我真的是想避免这些空格(蓝色),我已经尝试过以下代码 这是我的collectionview代表 首先,我尝试了这个,但它不起作用 我也尝试了这个,它不起作用 请帮助我解决此问题。
3回复

UICollectionView在UICollectionViewCells上调用setNeedsDisplay

我有一个带有自定义UICollectionViewCell类的UICollectionView,在其中绘制了必要的内容。 但是我发现,当我上下滚动集合视图时,它会重新绘制每个单元格,因为它会滚动下来并再次回到屏幕上。 这导致滚动非常混乱。 我认为UICollectionViewCells是
2回复

拖过 UICollectionViewCells 以选择 iOS

我正在尝试复制 iOS9 功能,您可以在其中拖动以选择多张照片或 UICollectionViewCells: https ://i.ytimg.com/vi/LZRTu3B5zlY/maxresdefault.jpg 我在这里看到了一个答案,但作为 iOS 初学者和 Objective-c 开发