gpt4 book ai didi

ios - 自定义 UICollectionViewCell 中的 UIScrollview 不工作

转载 作者:可可西里 更新时间:2023-11-01 06:17:33 25 4
gpt4 key购买 nike

我正在尝试让 UIScrollViewUICollectionViewCell 中正常工作。

自定义单元格正在通过 xib 文件加载,并且是 UICollectionViewCell 的子类。我在让其他控件工作时遇到问题,例如按钮和手势识别器,因为 UICollecitonView 似乎没有将任何触摸传递给单元格,但我绕过了 上带有手势识别器的那些code>UICollectionView 本身。我剩下的一个问题是 UIScrollViews...

UICollectionView水平滚动,单元格中的UIScrollView垂直滚动。我试过使用 UIPanGestureRecognizer 来滚动它们,但这似乎禁用了 UICollectionView 的 滚动能力。

有人有什么想法吗?

编辑:知道了!

所以我已经从我们在 iOS6 之前使用的先前第三方库转换为 Collection View 。原来问题出在我们用于单元格的 xib 文件上。使用之前的库,单元格只是 UIViews 的子类。我将类更改为 UICollectionViewCell 的子类,并更新了自定义类。事实证明这还不够。为了将触摸传递到单元格,我实际上需要从对象库中拖入一个新的 UICollectionViewCell,复制所有 subview 并重新连接 IBOutlets。在此之后,它成功了!

最佳答案

我通过确保在主线程上调整 ScrollView 的大小在我的代码中解决了这个问题。

我的 Collection View 正在使用 nsfetchedresultscontroller,它使用 block 调用来刷新选定的单元格。第一次选择单元格时, ScrollView 不会滚动。但是,如果您单击另一个单元格并单击返回它会正常工作。单元格的初始加载似乎 size calc 可能不在它需要在主线程上影响行为的位置。

-(UICollectionViewCell *) collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CustomCell" forIndexPath:indexPath];
dispatch_async(dispatch_get_main_queue(), ^{
// resizeScrollViewMethod should be where scrollview content size > scroll view frame.
[cell resizeScrollViewMethod];
});
return cell;
}

- (void) resizeScrollViewMethod {
//Do your scrollview size calculation here
}

关于ios - 自定义 UICollectionViewCell 中的 UIScrollview 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15395780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com