我知道这已被问过很多次了。但是如何在UITextView
中放置UITableViewCell
,我需要满足以下条件:
UITextView
无法修改。UITableView
滚动时,UITextView
会滚动。UITextView
应该是可以互动的,从某种意义上说,如果我有链接,我应该可以在Safari中打开它。UITextView
也应该致电didSelectRowAtIndexPath
[cell.textView setUserInteraction:NO]
,1,2和4是可能的
但在这种情况下,3不起作用。如何满足所有这些条件?
感谢。
答案 0 :(得分:1)
我过去使用过TTTAttributedLabel,效果非常好!这是一个UILabel,它将文本检测和委托方法归因于处理与此文本的交互。因为它就像UILabel,它最终也满足你的观点。
didSelectCellAtIndexPath:
答案 1 :(得分:0)
尽管使用此代码: -
//[cell.textView setUserInteraction:NO]
使用: -
[cell.textView setEditable:NO];
答案 2 :(得分:0)
答案 3 :(得分:0)
你禁止互动的一种方式以及你试图让它变得可触摸的其他方式...请明确你的要求..意思是你可以尝试UILable或UIButton ..这个.. {{3} }
答案 4 :(得分:0)
指定一个等于单元格编号的标记值(或其他独特的标记值,并帮助您将textview映射到单元格)
禁用textview编辑并滚动。这将解决1& 2.启用文本视图的用户交互,3解决。在文本视图中添加手势识别器,然后检查文本视图标签并调用didSelectRowAtIndexPath
并从该功能返回YES,以便允许textview接收该触摸并执行所需操作(打开链接等) )。
答案 5 :(得分:0)
试试这段代码。它工作正常。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"Cell"];
UITextView *desclbl = [[UITextView alloc] initWithFrame:CGRectMake(3, 15, 100, 50)];
desclbl.backgroundColor = [UIColor clearColor];
desclbl.userInteractionEnabled = NO;
desclbl.editable = NO;
desclbl.font = [UIFont systemFontOfSize:13];
desclbl.dataDetectorTypes = UIDataDetectorTypeAll;
desclbl.textColor = [UIColor blackColor];
[cell.contentView addSubview:desclbl];
desclbl.tag = 25;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
UITextView *lblDesc = (UITextView*) [cell.contentView viewWithTag:25];
lblDesc.text = [NSString stringWithFormat:@"http://www.google.com"];
return cell;
}