0

UIScrollView 内に存在する NSMutableAttributedString があります。addAttributes:range:関数を使用して文字列の一部を強調表示します。

多くのテキストが存在する場合、現在、強調表示された部分に到達するためにかなりの方法で手動でスクロールする必要があります. ビューがロードされたときに、強調表示された部分にビューを自動的にスクロールさせる方法を考えたいと思います。これは、アンカーを使用して Web ページの特定の部分にリンクする方法のようなものです。

ある種の数字を指定すると、ページの特定の部分にスクロールできるようになる機能があると思いますか? そのような関数に提供するために、そのような数値をどのように考え出すことができますか? 属性付き文字列から NSRange コンポーネントを使用していますか?

おそらくこれを達成するためのより良い方法がありますか?

4

2 に答える 2

0

最初の質問では指定しませんでしたが、ここで取り上げます。上記の受け入れられた回答は、テキストの指定された部分まで水平にスクロールしたい場合の解決策を提供します。ただし、垂直方向にスクロールするには、以下のような解決策が必要です。他の方法が存在する可能性がありますが、これが私にとってはうまくいきました。

属性付き部分文字列自体からサイズ コンポーネントを取得するのではなく、部分文字列をビューに追加した後にビューからサイズを取得していることに注意してください。次に、文字列全体を挿入して強制的にスクロールします。

NSAttributedString* att_string = [[NSMutableAttributedString alloc] initWithString:mystring];
NSAttributedString* sub_string = [att_string attributedSubstringFromRange:NSMakeRange(0, highlight_begin_index)];

[the_view setAttributedText:attributedSubstring];

CGFloat jump_height = the_view.contentSize.height;

[the_view setAttributedText:att_string];
[the_view setContentOffset:CGPointMake(the_view.contentOffset.x,jump_height) animated:FALSE];
于 2013-08-14T03:39:33.180 に答える