2009-07-27 18 views
3

テキストがあるUITextViewがあります。テキストのNSRangeが表示の最上部にくるようにスクロールできます。 scrollRangeToVisible:を使用しても機能しません。ビューのどこかにあるように範囲をスクロールします。 UITextViewにあるこの特定のNSRangeのテキストが一番上にあるようにスクロールするにはどうすればよいですか?UITextViewの範囲へのスクロール

ありがとうございます。

答えて

3

唯一の答えは、自分でcontentOffsetを解決することです。 NSString ​​3210 sizeWithFont:constrainedToSize:lineBreakMode:を使用して、必要なテキストのすぐ上にあるボックスのサイズを調整します(これは、テキストが行を開始する必要がない場合は面倒な場合があります。ジャンプする高さ)。それはUIScrollView -setContentOffset:animated:に必要なcontentOffsetを与えるはずです。私はパフォーマンスについて少し気になりますし、UITextViewの独自の実装を効率的に作成する必要があるかもしれません(静的コンテンツの場合はそれほど難しくありません)。

これは、私が望むような洗練されたソリューションではありませんが、UITextViewではレイアウトエンジンへのアクセスが多くありません。

+0

お返事ありがとうございます。私は先に進み、それを試みます。 AppleがUITextViewを幅広い状況でより機能的にしていないのは本当に愚かです。 –

+0

NSTextViewと比較すると、Appleがレイアウトエンジンを根本的に単純化していることがわかります。彼らはそのような変更を行うときに、多くの機能を多くのリリースでプライベートに保ちながら、細部を整えます。インターフェイスをパブリックにすると、少なくとも非推奨サイクルでサポートする必要があります。インターフェイスに満足できない場合は、管理しなくてもインターフェイスを変更できます。それは最初は少なくて済むが、ココアはインタフェースが根本的に変化する.NETよりも少ない割合で変化する傾向があることを意味する。 –

+0

ロブ、私は本当にあなたの答えを理解していない。ジョナサン、それはあなたを助けましたか? UIKitAdditionsを使用してフルテキストのフレームを計算する方法を理解していますが、そのフレームに配置されたテキストの範囲の座標位置を取得するにはどうすればよいですか?ここに欠けているのは何ですか? –