また、iPhone上のURLを検出することを選択/コピー可能テキスト付きのUITableViewCell

StackOverflow https://stackoverflow.com/questions/2514940

質問

私は問題を抱えています。私のアプリの一部は、テキストが表に示されている必要があります。私はそのURLを取り、私の組み込みブラウザを開くことができるように強調表示し、かつタップするとするテキストの必要性内のテキストのニーズ選択/コピー可(ただし、編集できない)ことにすると、すべてのURLます。

私は、これらの問題のいずれかのの一つを解決するソリューションのカップルを見てきましたが、両方はできません。

解決方法1:アイコン工場のIFTweetLabel

私が試した最初のソリューションは、IFTweetLabelクラスを使用していたことはアイコン工場によって可能になったとのTwitterrificで使用される。

このソリューションは、ケースバイケースで処理されるために検出されるべきリンク(またはあなたが正規表現を見つけることができるもの)を可能にしながら、

、それが選択してコピーすることはできません。

URLは、ラップさせるに十分な長さであるURL上記のクラスのオーバーレイはそれインタラクティブ缶にするというボタンをラップしていないと非常に奇妙な探して、画面をオフに描く場合の問題もあります。

解決法2:使用IFTweetLabelとハンドルが

手動でコピー

私が試した2つ目は、リンクを処理するための場所でIFTweetLabelを維持するが、どのようにSMSアプリハンドルそれのように、ロングタップジェスチャーを使用してコピーを実装することでした。これはただの作業についてだったが、それは、全体のテキストが、コピーされたテキストの任意の選択を可能にしませんか、どれもかわいい黒と白の...すべてにコピーされません。

解決策3:UITextView

私の3回目の試みは、表のセルのサブビューとしてUITextViewを追加しました。

は、これが解決しないことを唯一のものは、検出されたURLは、私が扱うことができないという事実です。テキストビューには、私のアプリを終了するとSafariを立ち上げUIApplicationopenURL:メソッドを使用します。

テーブルビューは非常に大きく得ることができるよう、また、サブビューとして追加UITextViewsの数は、いつでも、セル合成、なぜなら作成、レイアウトの(特にiPhone 3G時代のデバイス上で、テーブル全体のスクロールに顕著なパフォーマンスのドラッグを引き起こします)など、画面上にスクロールされます。

そこにすべてのあなたの知識が豊富民族への私の質問があるので:?私は何を行うことができます。

UIWebViewは最良の選択肢でありますか?別にパフォーマンスドラッグから、私はWebViewのは、上記のすべての問題を解決するだろうと思うし、私の記憶が正しければ、2.0日で戻って、アップルのドキュメントでは、実際のテキストが/ハイパーリンクが必要とされた書式ます。

ウェブビューをお勧めします

缶誰パフォーマンスのドラッグせずにこれを達成するための方法を考える?

を助けることができるすべての人に事前に感謝します。

役に立ちましたか?

解決

とすぐに私は送信ボタンを打つと、新しいアイデアが私を襲っています。

私はので、私は多分それが最善の解決策ではないことを考慮していなかったことを、テキストとインタラクティブにインラインURLを持つに気を取られました。

UIWebViewは関係なく、パフォーマンスの問題の、最良の選択である、行動のようなものを達成することを確信しています。

しかし、おそらくより良いユーザー体験/相互作用はインラインURLを強調表示しないように、しかし裏で、配列にそれらを収集するために、セルのアクセサリービューとして開示ボタンを提示しているのですか?

次に選択し、テキストをコピーするために、私はちょうど、データ検出器でUITextViewを使用することができサファリに退場し、私のアプリを閉じるされているリンクについて心配オフにしていない。

が開示ボタンをタップすると、ユーザーはテキストで見つかった、または複数のURLが発見された場合、に行くためにどの選択するピッカービューをユーザに提示するURLにオフ泡立てすることができます。

任意の考えは/このアイデアの批判は歓迎されます。

他のヒント

あなたは、彼らがすべての編集を適用しないようにするUITextFieldデリゲートメソッドをオーバーライドすることによって編集されてからテキストフィールドを防ぐことができます。葉フィールドの選択とコピー可能しかし防止改変います。

聞いて、より良い質問です:あなたは、実際には、実際のURL自体を表示しなければならないのですか?あなただけのページ/ロケーション名、ちょうどserver.host.domain接頭辞またはURLのいくつかの他の凝縮表現で逃げることはできますか?私は誰にいただきましたが、移動の制限された画面上で長いURLを読み取ろうとするとは思いません。

あなたは全体のURLを表示する必要がない場合は、私は詳細ビューが進むべき道だと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top