6

プレースホルダー テキストを含む UITextfield があります。

両方の配置プロパティを使用しました。ただし、プレースホルダーのテキストはまだ少し上にあります。誰でも私を助けることができますか?

ありがとう。

4

4 に答える 4

3
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
于 2012-12-28T12:50:09.177 に答える
1

プレースホルダーとテキストの配置を修正する必要があるための MonoTouch での私の解決策を次に示します。コメントで指摘したように、編集、静的テキスト、静的プレースホルダーの 3 つの異なる部分があります。Objective-C で同等のものはdrawTextInRect:drawPlaceholderInRect:です。

私の解決策は、整列されていないアイテムをサブクラス化してオフセットすることでした。残念ながら、この問題はフォント ファイル自体と、編集モードがフォント ファイルに与える影響と、iOS が静的テキストをレンダリングする方法に関連しているようです。

これが誰かに役立つことを願っています。

アリソン

public class MyTextField : UITextField
{
    public MyTextField(RectangleF rect) : base(rect)
    {
    }

    public override void DrawPlaceholder(RectangleF rect)
    {
        base.DrawPlaceholder(new RectangleF(rect.X, rect.Y + 2, rect.Width, rect.Height));
    }

    public override void DrawText(RectangleF rect)
    {
        base.DrawText(new RectangleF(rect.X, rect.Y + 2, rect.Width, rect.Height));
    }
}
于 2013-03-28T16:15:02.750 に答える
0

CGRectMake を使用してフレームを作成した Y サイズをいじってみてください。もしかして小さくする?

于 2012-07-12T23:49:06.900 に答える
0

ドキュメントによると、プロパティUITextFieldを使用する必要がありtextAlignmentます。ドキュメントに記載されているように、「このプロパティは、メインのテキスト文字列とプレースホルダー文字列の両方に適用されます。このプロパティのデフォルト値は UITextAlignmentLeft です。」

したがって、コードは次のようになります。

textfield.textAlignment = UITextAlignmentLeft

UITextAlignmentCenterまたは、使用できるテキストまたは記号UITextAlignmentRightの後にどのように配置するかによって異なります。=

于 2012-07-12T23:11:03.370 に答える