2

UITextRange からすべての四角形を取得したい。ご存知のように、UITextView の行が折り返されると、UITextRange は複数の CGRect で表されます。iOS 6.0 では「selectionRectsForRange:」というメソッドがあり、すべての CGRects を取得できます。しかし、古いバージョンでは「firstRectForRange:」というメソッドしかありませんでした。 API ドキュメントを何度も確認しましたが、何も見つかりませんでした。

私のコードは打撃が好きです:

UITextPosition *beginning = textView.beginningOfDocument;
UITextPosition *start = [textView positionFromPosition:beginning offset:range.location];
UITextPosition *end = [textView positionFromPosition:start offset:range.length];
UITextRange *textRange = [textView textRangeFromPosition:start toPosition:end];

//(in iOS 6.0)      
NSArray *array = [textView selectionRectsForRange:textRange];
for (int i=0; i<[array count]; i++) {
    NSLog(@"rect array = %@", NSStringFromCGRect([[array objectAtIndex:i] rect]));
}
// (in earlier version)
CGRect rect = [textView firstRectForRange:textRange];
4

2 に答える 2

0

この回答の情報に基づいて: テキストビュー内の任意の単語の位置を見つけたり、長方形を取得したり、その上にボタンを配置したりする方法は?

何度も電話する必要がありますfirstRectForRange

最初のrectを取得すると、その範囲を確認できます。これと最初に指定した範囲を使用して、調整された範囲で再度呼び出すことができますfirstRectForRange(必要な場合)...

于 2014-03-25T15:33:30.250 に答える