私はいくつかのプレースホルダーテキストを持つUITextfieldを持っています。プレースホルダーテキストとUITextFieldで整列していないテキストで入力されました
私は両方の配置プロパティを使用しました。しかし、palceholderのテキストはまだ少し上です。誰か助けてくれますか?
ありがとうございました。
私はいくつかのプレースホルダーテキストを持つUITextfieldを持っています。プレースホルダーテキストとUITextFieldで整列していないテキストで入力されました
私は両方の配置プロパティを使用しました。しかし、palceholderのテキストはまだ少し上です。誰か助けてくれますか?
ありがとうございました。
UITextField
文書によれば、textAlignment
プロパティを使用する必要があります。ドキュメントの状態として "このプロパティは、メインテキスト文字列とプレースホルダ文字列の両方に適用されます。このプロパティの既定値はUITextAlignmentLeftです。"
だからあなたのコードは次のようになります。
textfield.textAlignment = UITextAlignmentLeft
またはあなたが=
記号の後UITextAlignmentCenter
またはUITextAlignmentRight
を使用することができ、テキストを整列する方法に応じて。
これは役に立ちません。それは、入力されたテキストが整列されているか、プレースホルダーのテキストが整列されている(中央の垂直整列)かのようです。なぜこれら2つのテキストが両方とも正しく整列していないのか分かりません – Ahsan
あなたのYサイズで遊んでいたら、CGRectMakeを使ってフレームを作成しました。多分それを小さくするでしょうか?
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
ここでは、プレースホルダとテキストの位置合わせを修正する必要があるため、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));
}
}
あなたが使用している実際のコードを投稿することができますか? – Nosrettap
Nosrettap:IBを使用して作成されます。 – Ahsan
私はまだこの問題を抱えています。あなたは修正を見つけたことがありますか? :/ –