這種方法在iOS的7.0棄用:如何使用drawInRect:withAttributes:不是drawAtPoint:forWidth:withFont:字體:lineBreakMode:baselineAdjustment:在iOS的7
drawAtPoint:forWidth:withFont:fontSize:lineBreakMode:baselineAdjustment:
現在使用drawInRect:withAttributes:
代替。
我找不到fontSize和baselineAdjustment的attributeName。
編輯
感謝@Puneet回答。
其實,我的意思是如果沒有這些鍵,如何在iOS 7中實現這個方法?
像下面的方法:
+ (CGSize)drawWithString:(NSString *)string atPoint:(CGPoint)point forWidth:(CGFloat)width withFont:(UIFont *)font fontSize:(CGFloat)fontSize
lineBreakMode:(IBLLineBreakMode)lineBreakMode
baselineAdjustment:(UIBaselineAdjustment)baselineAdjustment {
if (iOS7) {
CGRect rect = CGRectMake(point.x, point.y, width, CGFLOAT_MAX);
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineBreakMode = lineBreakMode;
NSDictionary *attributes = @{NSFontAttributeName: font, NSParagraphStyleAttributeName: paragraphStyle};
[string drawInRect:rect withAttributes:attributes];
size = CGSizeZero;
}
else {
size = [string drawAtPoint:point forWidth:width withFont:font fontSize:fontSize lineBreakMode:lineBreakMode baselineAdjustment:baselineAdjustment];
}
return size;
}
我不知道如何通過fontSize
和baselineAdjustment
到
attributes
字典。
例如
NSBaselineOffsetAttributeName
密鑰應通過NSNumer
它,但baselineAdjustment
是Enum
。
是否有其他方式來傳遞這兩個變量?
常量在UIKit添加到'NSAttributedString'的文檔中列出。 – rmaddy
謝謝,我也知道這一點,但我不知道如何在iOS 7中實現此方法。 – Vincent