30

方法があった

- (CGSize)drawInRect:(CGRect)rect withFont:(UIFont *)font lineBreakMode:(NSLineBreakMode)lineBreakMode alignment:(NSTextAlignment)alignment;

iOS 7 用に今すぐ交換する必要があります。

NSDictionary *attributes = @{NSFontAttributeName: font};
[self drawInRect:rect withAttributes:attributes];

しかし、ワードラップのような改行モードを指定する方法は? 属性付き文字列描画シンボルのドキュメントを検索しましたが、改行モードについては言及されていません。これは自動的に常にワードラップですか?

4

2 に答える 2

58

段落スタイルを作成する必要があります。

NSMutableParagraphStyle *style = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
[style setLineBreakMode:NSLineBreakByWordWrapping];

NSDictionary *attributes = @{NSFontAttributeName: font, NSParagraphStyleAttributeName: style};
[self drawInRect:rect withAttributes:attributes];

詳細はこちら: https://developer.apple.com/documentation/uikit/nsparagraphstyle?language=objc

于 2013-10-05T12:38:21.403 に答える
8

Swift 5 では:

let style = NSMutableParagraphStyle()
style.lineBreakMode = .byWordWrapping

let attributes: [NSAttributedString.Key: Any] = [
   .font: font,
   .paragraphStyle: style
]
于 2016-04-07T08:21:27.170 に答える