UITableViewCell 内的 UIScrollView - 水平滚动
Posted
技术标签:
【中文标题】UITableViewCell 内的 UIScrollView - 水平滚动【英文标题】:UIScrollView inside a UITableViewCell - horizontal scrolling 【发布时间】:2013-11-25 16:47:48 【问题描述】:我一直在尝试在自定义 UITableViewCell
中设置 UIScrollView
。我尝试在自定义.xib
文件中添加UIScrollView
,对其进行子类化,并手动将其作为子视图添加到cellForRowAtIndexPath
方法中的UITableViewCell
。在所有这些中,我在cellForRowAtIndexPath
中设置了UIScrollView
的contentSize
。但无论采用何种方法,我都无法使其水平滚动。这里有一些代码可以给你一个想法。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
NSString *CellIdentifier = @"Custom_Cell";
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
CellIdentifier = @"Custom_Cell";
CustomCell *cell = (CustomCell *)[self.fpTable dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellIdentifier owner:nil options:nil];
// cell = [nib objectAtIndex:0];
for(id currentObject in nib)
if([currentObject isKindOfClass:[CustomCell class]])
cell = (CustomCell *)currentObject;
break;
cell.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[cell.pgCellScroll setContentSize:CGSizeMake(160*3 + (5*4), 160)];
[cell.pgCellScroll setScrollEnabled:YES];
[cell.pgCellScroll setDelaysContentTouches:YES];
[cell.pgCellScroll setCanCancelContentTouches:NO];
知道我哪里出错了吗?任何帮助表示赞赏。
【问题讨论】:
【参考方案1】:为表格视图和其中的滚动视图分配一个委托,并在这些(那些)委托中实现gestureRecognizer:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer
*)otherGestureRecognizer
return YES;
【讨论】:
那么我应该同时继承tableView和scrollView,然后在这两个类中实现它的委托方法吗? 您已经有一个委托给 tableView。只需在其中实现此方法。对于滚动视图,您可以将委托分配给同一个对象(该对象可能是您的视图控制器)。以上是关于UITableViewCell 内的 UIScrollView - 水平滚动的主要内容,如果未能解决你的问题,请参考以下文章
UITableViewCell 内的多个堆栈视图内的多行标签
UITableViewCell 内的 UIView 上的 UIGestureRecognizer
UITableViewCell 内的 UIStackView
如何增加 UItableviewcell 内的 UItableview 高度?
iOS - UITableViewCell 内的 UIScrollView 内的 UIView 未触发 UITapGestureRecognizer