3

テキストが右揃えの UITextField があります。プレースホルダ テキストの色を変更したかったので、(void)drawPlaceholderInRect:(CGRect)rect メソッドを使用します。うまく機能しますが、プレースホルダーのテキストは左揃えになりました (テキストは右揃えのままです)。オーバーライドするコードを追加できると思いますが、どれが見つかりませんでした。前もって感謝します !

- (void)drawPlaceholderInRect:(CGRect)rect
{
    [[UIColor redColor] setFill];
    UIFont *font = [UIFont fontWithName:@"HelveticaNeue-Medium" size:18];
    [[self placeholder] drawInRect:rect withFont:font];
}
4

3 に答える 3

1

" drawInRect" が自動的に左端から右に向かって描画されていることがわかりました。

あなたがする必要があるのは、 " rect" に渡された " " を調整しdrawInRectて、描画されたテキストの右端が UITextField 四角形の右端に触れることを可能にする左端を持つことです。

これを行うには、次のメソッドを使用することをお勧めします: NSString の[self placeholder] sizeWithFont: constrainedToSize:](NSString であると仮定[self placeholder]) これにより、文字列の実際の幅が得られます。次に、テキスト フィールド ボックスの右端から幅を引くと、左端から描画を開始する必要があります。

于 2013-08-25T19:35:56.020 に答える