2

DrawRectメソッドを使用してテキストを描画していますが、このテキストを右に揃える方法がわかりません。

私はInterfaceBuilderでアライメントを指定できることを知っているので、それが可能であることを知っています。自分でそれを理解できないようです。

この時点でのヘルプは非常に役立ちます。

本当にありがとう!

    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)];
4

2 に答える 2

3

正しい配置の正しいポイントを計算するには、計算を行う必要があります。[newEmail size]属性付き文字列の幅を計算し、それを描画したい四角形の幅から引き、その差をメソッドに渡す点の左座標に加算するために使用しますdrawAtPoint:

于 2012-07-15T06:44:31.253 に答える
2

クラスを使用している場合は、次のメソッドでクラスの拡張をNSString使用できるため、作業が楽になります(これらのメソッドを で使用するために特別なことをする必要はありません)。UIStringDrawingNSStringNSString

- (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そのサイズを使用して画面上の位置をカウントし、文字列の右端を常に同じ位置に揃えることができます。

于 2012-07-15T11:11:12.067 に答える