我有一个带有一些占位符文本的UITextfield。
我使用了两种对齐属性。然而,持有者文本仍然有点偏向上方。任何人都可以帮助我吗?
感谢。
答案 0 :(得分:3)
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
答案 1 :(得分:1)
这是我在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));
}
}
答案 2 :(得分:0)
根据UITextField
文档,您应该使用textAlignment
属性。正如文档所述“此属性适用于主文本字符串和占位符字符串。此属性的默认值为UITextAlignmentLeft。”
所以你的代码看起来像:
textfield.textAlignment = UITextAlignmentLeft
或取决于您希望如何对齐UITextAlignmentCenter
符号后UITextAlignmentRight
或=
使用的文字。
答案 3 :(得分:0)
我会说使用CGRectMake来创建框架的Y尺寸。也许让它变小?