方法がありました
- (CGSize)drawInRect:(CGRect)rect withFont:(UIFont *)font lineBreakMode:(NSLineBreakMode)lineBreakMode alignment:(NSTextAlignment)alignment;
iOS7用に今すぐ交換する必要があります。
NSDictionary *attributes = @{NSFontAttributeName: font};
[self drawInRect:rect withAttributes:attributes];
しかし、ワードラップのような改行モードを指定するにはどうすればよいですか?属性付き文字列描画記号のドキュメントを検索しましたが、改行モードについては言及していません。これは自動的に常にワードラップですか?
段落スタイルを作成する必要があります。
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
Swift 5:
let style = NSMutableParagraphStyle()
style.lineBreakMode = .byWordWrapping
let attributes: [NSAttributedString.Key: Any] = [
.font: font,
.paragraphStyle: style
]