UITableViewCell 内的 UIScrollView - 水平滚动

Posted

技术标签:

【中文标题】UITableViewCell 内的 UIScrollView - 水平滚动【英文标题】:UIScrollView inside a UITableViewCell - horizontal scrolling 【发布时间】:2013-11-25 16:47:48 【问题描述】:

我一直在尝试在自定义 UITableViewCell 中设置 UIScrollView。我尝试在自定义.xib 文件中添加UIScrollView,对其进行子类化,并手动将其作为子视图添加到cellForRowAtIndexPath 方法中的UITableViewCell。在所有这些中,我在cellForRowAtIndexPath 中设置了UIScrollViewcontentSize。但无论采用何种方法,我都无法使其水平滚动。这里有一些代码可以给你一个想法。

- (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

UITableViewCell 内的 TableView - 必须注册一个 nib 或类