UICollectionViewCell 内的 UIScrollView 不滚动
Posted
技术标签:
【中文标题】UICollectionViewCell 内的 UIScrollView 不滚动【英文标题】:UIScrollView inside UICollectionViewCell not scrolling 【发布时间】:2015-07-14 20:29:17 【问题描述】:我正在像这样设置UICollectionViewCell
:
self.background = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.contentView.frame.size.width, self.contentView.frame.size.height)];
self.background.userInteractionEnabled = YES;
self.background.scrollEnabled = YES;
self.background.showsVerticalScrollIndicator = YES;
// configure image
self.image = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.contentView.frame.size.width, self.background.frame.size.height)];
[self.background addSubview:self.image];
// configure title
self.title = [[UILabel alloc] initWithFrame:CGRectMake(5, 10, self.contentView.frame.size.width-10, 70)];
[self.background addSubview:self.title];
// configure description
self.description = [[UILabel alloc] initWithFrame:CGRectMake(5, 80, self.contentView.frame.size.width-10, 20)];
[self.background addSubview:self.description];
self.textView = [[UIWebView alloc] initWithFrame:CGRectMake(0, self.image.frame.size.height+10, self.contentView.frame.size.width, 40)];
self.textView.delegate = self;
NSString *content = [NSString stringWithFormat:@"<html><head></head><body id='foo'>%@</body></html>", @"<p>kbafdj akdjfnadf jhadkfb ij daofhu adofh oj afoduuh oiad fohfd ouhadf dj aodfhj ah adlfk ohad ofladjhfl aojadf oadfh oadhf adfladf adfoadf oadfh aodfh a oadf aodf afdjladf oad jladfl aodf alf d adjfladf adfj aldfkajdfljad aodfj adlfj ad aldjf adlfj al adfjadlfa d adf adf ad pajdf aldjf adkh pfbd fpqehf qehf qepd af pqif phhf q piiqihpsdhvpvqohro pdh wpvhqf lorem ipsum dfkbshbs k bfjsv ohfakdjb </p>"];
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[_textView loadHTMLString:content baseURL:baseURL];
[self.background addSubview:_textView];
[self addSubview:self.background];
[self sendSubviewToBack:self.background];
[self.background setContentSize:CGSizeMake(self.contentView.frame.size.width, 2*self.contentView.frame.size.height)];
UICollectionView
具有水平滚动的全屏UICollectionViewCell
s。 UICollectionView
上还有一个UIGestureRecognizer
:
self.pinchRecognizer =
[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(closeCell:)];
self.pinchRecognizer.delegate = self;
[_collectionView addGestureRecognizer:self.pinchRecognizer];
现在,UIScrollView
不起作用。我不明白出了什么问题,所以如果有人可以在这里帮助我,那就太好了。我做错了什么?
【问题讨论】:
你看过 UIGestureRecognizerDelegate 吗? 【参考方案1】:原来问题在于我将UIScrollView
发送到UICollectionViewCell
的后面。删除 [self sendSubviewToBack:self.background];
解决了这个问题。
【讨论】:
【参考方案2】:UIWebView 子视图可能正在处理平移手势。尝试在 webview 上禁用触摸交互。
【讨论】:
不幸的是,这不是问题:(以上是关于UICollectionViewCell 内的 UIScrollView 不滚动的主要内容,如果未能解决你的问题,请参考以下文章
UICollectionViewCell 内的圆形 ImageView
UICollectionViewCell 内的 UIImageView 中的角半径
从 uiviewcontroller 操作 uicollectionviewcell 内的 uicollectionview
在 UICollectionViewCell 内的 UICollectionView 中平滑滚动