我有一个带有一些占位符文本的 UITextfield。
我已经使用了这两个对齐属性。但是,占位符文本仍然有点偏高。谁能帮我吗 ?
谢谢。
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
这是我在 MonoTouch 中的解决方案,用于修复占位符与文本的对齐方式。正如我在评论中所指出的——有三个不同的部分:编辑、静态文本和静态占位符。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
在=
标志之后。