2016-09-07 19 views
2

複数のアドレスと同じセル内の他の情報を表示するテーブルビューがあります。たくさんの微妙なやりとりをした結果、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分かかりました。なぜこれはとても難しいですか?

答えて

1

線以下

tv.DataDetectorTypes = UIDataDetectorType.Link; 

tv.DataDetectorTypes = UIDataDetectorType.Address; 

を交換し、UITextView内のリンクを検出するために、あなたのUITextViewは選択する必要があります。そう

tv.editable = false; 
+0

残念ながらそれは私のために働かなかった –

+0

ああ、私は問題を見つけた、私は 'tv.editable'を偽に設定していませんでした –

+0

ええ、私はちょうどそれを実際に入力していた! – Lion

1

は、問題を見つけ、あなたのTextViewのような編集可能な選択していないことを確認し、私はそれが自動的にfalseに設定された考え出し

tv.editable = false; 

を設定する必要があるが、それはそうではありません。

関連する問題