我的体系结构如下:CollectionView
(我有6个集合,所以我有6个视图来包含它们)在View
里面的StackView
内部(包含所有视图) ScrollView
。这一切都在IBuilder内部完成,每个VIEW
都有.xib文件。然后是另一个.xib文件,用于所有视图的堆栈。然后是该滚动视图所在的应用程序的另一个.xib文件。所有这些都会加载并呈现正确的信息。
我的问题是每个cell
中的每个collectionView
必须是可点击的。只有开头开头的views
可以点击。一次,我需要滚动到一个视图。我无法单击那些新渲染的视图。
对于正在运行的集合视图有效的是
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
NSInteger index = indexPath.section * 2 + indexPath.row;
HGMeasurementValue *cellData = [self.cells objectAtIndex:index];
if (cellData.isEnable) {
[[NSNotificationCenter defaultCenter] postNotificationName:HGEventMeasurementCellCallback object:self userInfo:@{ @"cellData": cellData}];
}
}
我尝试过:
didSelectItemAtIndexPath
。唯一能够响应触摸的是第一个可见的触摸。-在iPhoneSE上进行了测试-首先加载了2个视图,并且可以点击(其他4个视图均未响应didSelectItemAtIndexPath
)
-已在iPhone XR上进行了测试-首先加载了3个视图并且可以点击(其他3个视图均未响应didSelectItemAtIndexPath
)
- (void)ViewDidLoad {
self.collection.delaysContentTouches = NO;
self.collection.canCancelContentTouches = NO;
self.collection.delegate = self;
}
- (void)shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
-禁用gestureRecognizer
的scrollView(无法正常工作,我无法再滚动)
我检查了是否有其他多余的手势识别器可能会吞噬我的手机,而我却找不到。
我在SO上看到了此选项,并尝试实现它,但是以前没有任何手势可以将其应用于:
tapGesture.cancelsTouchesInView = NO;
检查了苹果文档中的UIStackView
,UIGestureRecognizer
和UIScrollView
,但我仍然找不到my views that are not visible when the app loads are not responding to touches
的原因。
我缺少任何辅助方法/委托设置吗?
您知道为什么scroll
stack
或collectionView
不可点击的任何原因,因为必须在viewDidLoad
或viewDidLayoutSubViews
之后加载(因为仅尚不可见但无法响应触摸的视图。)
任何帮助将不胜感激!
非常感谢您!