@niwakk7 Web開発メモ

元々iPhoneアプリ開発のブログだったのですが、開発を休止しているためWeb関連の技術メモを残していきます。

UITextViewの改行幅を変える。

UITextViewを編集可能にしてなにやら文章をいれたりすると、以外と行間が狭かったりして、結構圧迫感のある見た目になってしまう。そういうときは、以下のようにして、改行幅を変える。

NSLayoutManagerDelegateというプロトコルを使い、
lineSpacingAfterGlyphAtIndexというdelegateメソッドを実装する。

@interface TSViewController () <NSLayoutManagerDelegate>

@property (strong, nonatomic)   IBOutlet UITextView *textView;

@end

@implementation TSViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.textView.text = @"あいうえお";
    //デリゲート設定
    self.textView.layoutManager.delegate = self;
}

- (CGFloat)layoutManager:(NSLayoutManager *)layoutManager lineSpacingAfterGlyphAtIndex:(NSUInteger)glyphIndex withProposedLineFragmentRect:(CGRect)rect
{
    // ここで高さを設定する
    return 10;
}


左がデフォルト、右が高さを10に設定したもの


f:id:niwakk7:20140222222241j:plain:w200 f:id:niwakk7:20140222222327j:plain:w200


すこし、高めの設定をしてみたのだが、改行が少し高くなっていることが分かる。

※検索候補に偶然出た"かっておいたよ"は無視でおねがいいたします(-.-)

参考:
NSLayoutManagerDelegate Protocol Reference