1

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

感谢您的帮助!

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

4

1 回答 1

1

在你的情况下UIScrollView隐藏你的cell,所以你不能触摸UITableView因此didSelectRowAtIndexPath方法的单元格是行不通的。

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

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

它可能对你有用。

于 2013-01-26T16:34:11.997 回答