【发布时间】:2013-10-18 06:02:19
【问题描述】:
此方法在 iOS 7.0 中已弃用:
drawAtPoint:forWidth:withFont:fontSize:lineBreakMode:baselineAdjustment:
现在改用drawInRect:withAttributes:。
我找不到fontSize 和baselineAdjustment 的attributeName。
编辑
感谢@Puneet 的回答。
其实我的意思是如果没有这些key,在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。 -
谢谢,这个我也知道,但是我不知道如何在iOS 7中实现这个方法。