- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
将点击手势有效添加到 UICollectionViewCell
的 subview 的最佳方法是什么?从 dequeueReusableCellWithReuseIdentifier
返回已经附加了一堆默认手势识别器(例如 UIScrollView
)。我是否需要检查并查看我的一个自定义手势是否已附加( scrollView.gestureRecognizers
),如果没有,则添加它?我需要我的应用程序的滚动尽可能平滑,因此检查的性能和已创建资源的有效重用是关键。这段代码都发生在 cellForItemAtIndexPath
里面.谢谢。
最佳答案
我想出了一种方法,只需要一个共享的点击手势识别器对象,并从 cellForItemAtIndexPath
移动设置代码。 (当用户滚动时它被频繁调用)到 viewDidLoad
(在加载 View 时调用一次)。这是代码:
- (void)myCollectionViewWasTapped:(UITapGestureRecognizer *)tap
{
CGPoint tapLocation = [tap locationInView:self.collectionView];
NSIndexPath *indexPath = [self.collectionView indexPathForItemAtPoint:tapLocation];
if (indexPath)
{
MyCollectionViewCell *cell = (MyCollectionViewCell *)[self.collectionView cellForItemAtIndexPath:indexPath];
CGRect mySubviewRectInCollectionViewCoorSys = [self.collectionView convertRect:cell.mySubview.frame fromView:cell];
if (CGRectContainsPoint(mySubviewRectInCollectionViewCoorSys, tapLocation))
{
// Yay! My subview was tapped!
}
}
}
- (void)viewDidLoad
{
// Invoke super
[super viewDidLoad];
// Add tap handler to collection view
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myCollectionViewWasTapped:)];
[self.collectionView addGestureRecognizer:tap];
}
关于ios - 如何向从 dequeueReusableCellWithReuseIdentifier 返回的 UICollectionViewCell subview 添加点击手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23876519/
这个问题在这里已经有了答案: UICollectionView registerClass: forCellWithReuseIdentifier method breaks UICollectio
我刚刚开始使用 Collection View 。这是一个空的 Collection View 单元格,尚未添加任何内容。我只是想先看看它的外观,然后再添加更多 UI 元素。 但是注意到滚动并不顺畅。
当我在模拟器中运行我的应用程序时,我遇到了这个运行时错误。 Terminating app due to uncaught exception 'NSInternalInconsistencyExce
我有一个 UICollectionView,我正在使用 dequeueReusableCellWithReuseIdentifier 来重用单元格。第二次调用 cellForItemAtIndexPa
我一直想知道为什么我的代码在获取 Collection View 单元格时与 cellForItemAtIndexPath: 一起工作,而不与 dequeueReusableCellWithReuse
我使用 UICollectionView 和自定义 collectionViewCells,并且我确切地知道 dequeueReusableCellWithReuseIdentifier 的工作原理。
我不能像使用 UITableView 那样任意出列单元格来计算高度。使用 UICollectionView 执行此操作的等效方法是什么? dequeueResuableCellWithReuseIde
我创建了一个 UICollectionViewCell 的子类 with a .xib,并且在 - (CategoryViewCollectionCell *)collectionView:(UICo
我有一个包含自定义 UICollectionViewCell 的 UICollectionView(TestReceiptCell 是类名)。 当自定义单元格仅包含 UILabel 时,让 UICol
为了总结我的问题,我正在尝试测试 Collection View 的数据源。我初始化一个 View Controller 并调用 viewDidLoad() 来初始化组件,该组件初始化自定义类以用作数
我在 UICollectionViewCell 中的 UICollectionView 遇到了这个问题:最后一个 UICollectionViewCell 没有填充 13 - 18,而是复制了第一个。
将点击手势有效添加到 UICollectionViewCell 的 subview 的最佳方法是什么?从 dequeueReusableCellWithReuseIdentifier 返回已经附加了一
我们遇到了崩溃,我们只能从崩溃日志中看到这些: 2018-11-02 10:15:01.744674-0400 Flights[385:17563] *** Terminating app due t
为 UICollectionView 创建单元格时, dequeueReusableCellWithReuseIdentifier不通过 init也不initWithCoder CategoryVie
我正在开发一个有 UICollectionView 的应用程序。我创建了一个包含 UIImageView 和 UILabel 的自定义 Collection View Cell。以下代码导致 cell
我遇到以下崩溃: Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'coul
登录方式: - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndex
在 collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayo
在 UICollectionViewCell 类中有几个关于 nil outlet 的帖子,例如 this和 this ,但没有一个解决方案有效。使用强导出而不是弱导出失败,registerClass
在我的项目中,我有多种类型的 UITableview 单元格,每个单元格都包含 UICollectionview。 最初我在 UITableview 的 2 个部分加载了 2 个 tableViewc
我是一名优秀的程序员,十分优秀!