didSelectrow 不适用于滚动视图和表格视图(iOS)

Posted

技术标签:

【中文标题】didSelectrow 不适用于滚动视图和表格视图(iOS)【英文标题】:didSelectrow doesn't work with scrollview and tableview (iOS) 【发布时间】:2013-01-26 16:22:48 【问题描述】:

目前我正在创建一个具有滚动视图和表格视图的应用程序。 我在这里使用了这样的代码:http://johansorensen.com/articles/touches-and-uiscrollview-inside-a-uitableview.html 但是由于滚动视图和表格视图的组合,didSelectrow 函数不再起作用。

感谢您的帮助!

请注意:回答清楚,我不是最有经验的 ios 开发者。

【问题讨论】:

【参考方案1】:

在您的情况下UIScrollView 隐藏您的cell,因此您不能触摸UITableView 的单元格,因此didSelectRowAtIndexPath 方法不起作用。

在您的链接中编写以下代码以在UITableView 中添加scrollView

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

    return 50.0f;


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    static NSString *cellIdentifier = @"ScrollCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (!cell) 
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
        UIScrollView *scroller = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 25, 320, 25)];
        scroller.showsHorizontalScrollIndicator = NO;

        UILabel *contentLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320*4, 25)];
        contentLabel.backgroundColor = [UIColor clearColor];
        contentLabel.textColor = [UIColor whiteColor];
        NSMutableString *str = [[NSMutableString alloc] init];
        for (NSUInteger i = 0; i < 100; i++)  [str appendFormat:@"%i ", i]; 
        contentLabel.text = str;

        [scroller addSubview:contentLabel];
        scroller.contentSize = contentLabel.frame.size;
        [cell addSubview:scroller];
    


    return cell;

然后使用

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath


它可能对你有用。

【讨论】:

以上是关于didSelectrow 不适用于滚动视图和表格视图(iOS)的主要内容,如果未能解决你的问题,请参考以下文章

如何在相对布局中添加固定标题和滚动视图表行?

当从视图启用滚动时,SWRevealViewController 平移手势不起作用

iOS大标题不适用于scrollView后面的背景视图

滚动侦听器不适用于 SingleChildScrollView Flutter 中的列表视图

自动布局不适用于可重用的表格视图单元格

UIScrollView 不使用 AutoLayout 滚动