我使用DrawRect方法绘制一些文本,但无法弄清楚如何将此文本对齐到右边。
我知道在界面构建器中你可以指定对齐方式,所以我知道它是可能的,我似乎无法弄明白自己。
此时的任何帮助都非常有帮助。
非常感谢!
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:[NSFont fontWithName:@"AvenirNext-UltraLight" size:12], NSFontAttributeName, [NSColor redColor], NSForegroundColorAttributeName, nil];
NSAttributedString * newEmail = [[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"%d", newUnreadEmail] attributes:attributes];
[newEmail drawAtPoint:NSMakePoint(140, 600)];
答案 0 :(得分:3)
你需要做数学来计算正确对齐的正确点。使用[newEmail size]
计算属性字符串的宽度,从要绘制的矩形的宽度中减去它,并将差值添加到传递给{{1的点的左坐标方法。
答案 1 :(得分:2)
如果您使用的是NSString
课程,那么您的生活将更加轻松,因为您可以使用以下方法UIStringDrawing
类的NSString
扩展名(您不需要这样做)使用NSString
}这些方法的任何额外的事情:
- (CGSize)sizeWithFont:(UIFont *)font;
- (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode;
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size;
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode;
它们会为您提供所选UIFont
和UILineBreakMode
的当前字符串的确切大小,并使用该大小计算屏幕上的位置,以便始终对齐字符串的右边缘同样的立场。