2

UITextView に入力するときに行間を実現しようとしています。UITextView内をクリックすると、カーソル位置までのすべての文字に対してのみ行間をレンダリングするように見えるこの関数があります。

UITextView内をクリックしたときに、書式設定がすべてのテキスト範囲に適用されるようにする関数をどのように記述すればよいですか。

おそらくglyphRangeForTextContainerがこれを支援するための同等の方法はありますか?

- (void) formatText
{
        __block CGFloat topOffset = 0;

        NSRange lineGlyphRange = [self.layoutManager glyphRangeForTextContainer:self.textContainer];

        [self.layoutManager 
         enumerateLineFragmentsForGlyphRange:lineGlyphRange usingBlock:^(CGRect rect, CGRect usedRect, NSTextContainer *textContainer, NSRange glyphRange, BOOL *stop)
         {
             CGRect adjustedRect = rect;
             CGRect adjustedUsedRect = usedRect;
             adjustedRect.origin.y = topOffset;
             adjustedUsedRect.origin.y = topOffset;

             [self.layoutManager setLineFragmentRect:adjustedRect forGlyphRange:glyphRange usedRect:adjustedUsedRect];

             topOffset += 30; // 30 is the space between the lines you can adjust this as you like
         }];

        CGRect adjustedExtraLineFragmentRect = self.layoutManager.extraLineFragmentRect;
        CGRect adjustedExtraLineFragmentUsedRect = self.layoutManager.extraLineFragmentUsedRect;
        adjustedExtraLineFragmentRect.origin.y = topOffset;
        adjustedExtraLineFragmentUsedRect.origin.y = topOffset;

        [self.layoutManager setExtraLineFragmentRect:adjustedExtraLineFragmentRect usedRect:adjustedExtraLineFragmentUsedRect textContainer:self.textContainer];
}

問題はこのスレッドに関連しています

iOS7 Line Spacing を使用して UITextView に入力し、TextKit を使用してフォーマットを維持する

1- これは問題のビデオです:- http://1drv.ms/1o8Rpd2

2- これは私がテストしているプロジェクトです: http://1drv.ms/1o8RtK0

ありがとうございました。

4

0 に答える 0