Objective c 占位符文本和键入的文本未在UITextField中对齐
我有一个带有占位符文本的UITextfield 我使用了这两种对齐属性。然而,palceholder文本仍然有点偏上。有人能帮我吗Objective c 占位符文本和键入的文本未在UITextField中对齐,objective-c,ios,uitextfield,Objective C,Ios,Uitextfield,我有一个带有占位符文本的UITextfield 我使用了这两种对齐属性。然而,palceholder文本仍然有点偏上。有人能帮我吗 谢谢。根据UITextField文档,您应该使用textAlignment属性。正如文档中所述,“此属性同时应用于主文本字符串和占位符字符串。此属性的默认值为UITextAlignmentLeft。” 因此,您的代码看起来像: textfield.textAlignment = UITextAlignmentLeft 或者,根据您想要对齐文本的方式,您可以在=符号
谢谢。根据
UITextField
文档,您应该使用textAlignment
属性。正如文档中所述,“此属性同时应用于主文本字符串和占位符字符串。此属性的默认值为UITextAlignmentLeft。”
因此,您的代码看起来像:
textfield.textAlignment = UITextAlignmentLeft
或者,根据您想要对齐文本的方式,您可以在
=
符号后使用UITextAlignmentCenter
或UITextAlignmentRight
。我想说的是,使用CGRectMake创建帧时使用的Y大小进行调整。也许可以缩小它?这是我在MonoTouch中解决占位符与文本对齐问题的方法。正如我在评论中指出的——有三个不同的部分:编辑、静态文本和静态占位符。Objective-C中的等效项是drawTextInRect:和drawPlaceholderInRect:
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
我的解决方案是对错误对齐的项进行子类化和偏移。不幸的是,这个问题似乎与字体文件本身以及编辑模式对它的影响有关,而与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));
}
}
您能发布您正在使用的实际代码吗?我最终将UITextField子类化,并重写了drawPlaceholderInRect和drawTextInRect。我注意到三个不同的部分——绘制的静态文本、编辑文本和占位符。我认为编辑模式的设置方式考虑了字体本身的一些问题,不会影响静态文本。但是静态是解决问题最容易覆盖的。好吧,这没有帮助。它类似于键入的文本对齐或占位符文本对齐(中心垂直对齐)。不知道为什么这两个文本没有正确对齐