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 平移手势不起作用