绘制居中的多线NSString

时间:2014-08-29 13:19:24

标签: objective-c cocoa-touch nsstring alignment deprecated

我想绘制一个居中的多线NSString。 使用

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

这就像一个魅力。不幸的是,这种方法在iOS 7中已弃用。 根据Apple的文档,我应该用

替换这种方法的使用
- (void)drawWithRect:(CGRect)rect options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context

但是,这样绘制的文本仅在NSString在绘制时产生多行文本时居中,但如果在绘制时导致单行文本则不居中。

我通过属性字典传递了以下NSMutableParagraphStyle

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
paragraphStyle.alignment = NSTextAlignmentCenter;

我将options设置为NSStringDrawingUsesLineFragmentOrigin并将nil传递给context

任何帮助都会非常感激!

祝你好运!

0 个答案:

没有答案