プレースホルダー テキストを含む UITextfield があります。
両方の配置プロパティを使用しました。ただし、プレースホルダーのテキストはまだ少し上にあります。誰でも私を助けることができますか?
ありがとう。
プレースホルダー テキストを含む UITextfield があります。
両方の配置プロパティを使用しました。ただし、プレースホルダーのテキストはまだ少し上にあります。誰でも私を助けることができますか?
ありがとう。
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));
}
}
CGRectMake を使用してフレームを作成した Y サイズをいじってみてください。もしかして小さくする?
ドキュメントによると、プロパティUITextField
を使用する必要がありtextAlignment
ます。ドキュメントに記載されているように、「このプロパティは、メインのテキスト文字列とプレースホルダー文字列の両方に適用されます。このプロパティのデフォルト値は UITextAlignmentLeft です。」
したがって、コードは次のようになります。
textfield.textAlignment = UITextAlignmentLeft
UITextAlignmentCenter
または、使用できるテキストまたは記号UITextAlignmentRight
の後にどのように配置するかによって異なります。=