indexPath.row在tableView自定义单元格iOS中没有给出正确的值

时间:2013-12-11 10:40:39

标签: ios iphone ipad uitableview uiscrollview

我在左侧cellscrollView的右侧使用cell制作了自定义imageView。现在,当我点击imageView时,我得到了indexPath.row的正确值,但是当我点击scrollView indexPath.row时,会返回上次点击的图片的值。有任何建议如何解决这个问题?

修改

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *hlCellID = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:hlCellID];
    if(cell == nil) {
        cell =  [[UITableViewCell alloc]
               initWithStyle:UITableViewCellStyleDefault reuseIdentifier:hlCellID];
        cell.accessoryType = UITableViewCellAccessoryNone;
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }
    UIScrollView *scrollView = (UIScrollView *)[cell viewWithTag:16];
    scrollView.backgroundColor = [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0];
    scrollView.delegate = self;
    scrollView.scrollEnabled = YES;
    scrollView.contentSize =   CGSizeMake(scrollView.frame.size.width,scrollView.frame.size.height);
    [scrollView setShowsHorizontalScrollIndicator:NO];
    [scrollView setShowsVerticalScrollIndicator:NO];

    int i=0;
    for(i=0;i<15;i++){
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0+i*100, 0, 100, 100)];
        label.text = @"HELLO";
        label.textColor = [UIColor blackColor];
        label.backgroundColor = [UIColor clearColor];
        label.textAlignment = NSTextAlignmentCenter;
        label.font = [UIFont fontWithName:@"ArialMT" size:18];
        [scrollView addSubview:label];
        scrollView.contentSize = CGSizeMake(scrollView.frame.size.width+i*label.frame.size.width,scrolView.frame.size.height);
    }
    return cell;
}

2 个答案:

答案 0 :(得分:1)

UIScrollView *scrollView = (UIScrollView *)[cell viewWithTag:16];

使用以下内容更改以上内容。

UIScrollView *scrollView = (UIScrollView *)[cell viewWithTag:indexPath.row];

我希望这对你有用..

答案 1 :(得分:0)

您应该查看此文档参考:responder chain

基本上,您的事件不会上升到响应者链,因为滚动视图会捕获它。我不知道你想要实现什么,但在scrollview中有滚动视图(因为表格是滚动视图的性质)是个坏主意,而且很难实现。