我有一个tableview,它将在同一个单元格中显示多个地址以及其他一些信息。经过大量的修补和谷歌搜索后,我得出结论:UITextView
是检测链接的最佳/最简单方法。
我目前使用UITextView
的方法是不检测链接,我不确定原因。
这是:
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
UITableViewCell cell = tableView.DequeueReusableCell(Identifier);
if (cell == null)
cell = new UITableViewCell(UITableViewCellStyle.Value1, Identifier);
cell.TextLabel.Lines = 0; // allow wrapping
cell.TextLabel.Text = items[indexPath.Row];
UITextView tv = new UITextView(new CoreGraphics.CGRect(cell.Bounds.X, cell.Bounds.Y, cell.ContentView.Frame.Size.Width, cell.ContentView.Frame.Size.Height));
tv.Text = cell.TextLabel.Text;
cell.TextLabel.Text = "";
tv.DataDetectorTypes = UIDataDetectorType.Address;
tv.Selectable = true;
tv.UserInteractionEnabled = true;
tv.ScrollEnabled = false;
cell.ContentView.AddSubview(tv);
return cell;
}
这既不会检测嵌入的地址,也不允许单击它。
现在已经工作太久了,在Android上花了大约3分钟!为什么这么难?
答案 0 :(得分:1)
替换下面的行
tv.DataDetectorTypes = UIDataDetectorType.Address;
与
tv.DataDetectorTypes = UIDataDetectorType.Link;
要检测UITextView
中的链接,您的UITextView
应该是可选的。所以请确保您的textview是可选择的,而不是像
tv.editable = false;
答案 1 :(得分:1)
发现问题,您需要设置
tv.editable = false;
我认为它被自动设置为false,但事实并非如此。