web-dev-qa-db-ja.com

iOS 7の属性付き文字列描画メソッドのNSLineBreakModeに相当するものは何ですか?

方法がありました

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

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

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

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

29
openfrog

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

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

53
Leo Natan

Swift 5:

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

let attributes: [NSAttributedString.Key: Any] = [
   .font: font,
   .paragraphStyle: style
]
8
Phlippie Bosman