2013-10-05 6 views
25

ein VerfahrenWas ist äquivalent zu NSLineBreakMode in iOS 7 attributierten Zeichenketten Zeichenfolgen?

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

war, die ich jetzt für iOS 7. Ich soweit

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

aber, wie angegeben wird der Zeilenumbruch-Modus wie Zeilenumbruch ersetzen muss? Ich suchte Dokumentation von Attributen Zeichenketten Zeichensymbole aber keine Erwähnung von Zeilenumbruchmodus. Ist das automatisch immer Word-Wrap?

Antwort

49

Sie müssen einen Absatzstil erstellen.

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

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

Weitere Informationen hier: https://developer.apple.com/documentation/uikit/nsparagraphstyle?language=objc

+0

Ich glaube, Sie auch '[[NSMutableParagraphStyle alloc] init] verwenden können,' anstatt die veränderbare Kopie. –

6

In swift:

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

let attributes: [String: AnyObject] = [ 
    NSFontAttributeName: font, 
    NSParagraphStyleAttributeName: style 
]