我在左侧cell
和scrollView
的右侧使用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;
}
答案 0 :(得分:1)
UIScrollView *scrollView = (UIScrollView *)[cell viewWithTag:16];
使用以下内容更改以上内容。
UIScrollView *scrollView = (UIScrollView *)[cell viewWithTag:indexPath.row];
我希望这对你有用..
答案 1 :(得分:0)
您应该查看此文档参考:responder chain
基本上,您的事件不会上升到响应者链,因为滚动视图会捕获它。我不知道你想要实现什么,但在scrollview中有滚动视图(因为表格是滚动视图的性质)是个坏主意,而且很难实现。