这种方法在iOS 7.0中已被弃用:
drawAtPoint:forWidth:withFont:fontSize:lineBreakMode:baselineAdjustment:
现在请使用drawInRect:withAttributes:
代替。
我找不到字体大小和基线调整的属性名。
编辑
感谢@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
键应该向它传递一个NSNumber
,但是baselineAdjustment
是Enum
。
难道没有其他方法来传递这两个变量吗?