我想绘制一个居中的多线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
。
任何帮助都会非常感激!
祝你好运!