複数のアドレスと同じセル内の他の情報を表示するテーブルビューがあります。たくさんの微妙なやりとりをした結果、UITextView
がリンクを検出する最も簡単な方法であるという結論に至りました。UITableView内の複数のリンクをUITableViewCell内に設定する
私の現在のアプローチは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分かかりました。なぜこれはとても難しいですか?
残念ながらそれは私のために働かなかった –
ああ、私は問題を見つけた、私は 'tv.editable'を偽に設定していませんでした –
ええ、私はちょうどそれを実際に入力していた! – Lion