6

我有一个带有一些占位符文本的 UITextfield。

我已经使用了这两个对齐属性。但是,占位符文本仍然有点偏高。谁能帮我吗 ?

谢谢。

4

4 回答 4

3
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
于 2012-12-28T12:50:09.177 回答
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));
    }
}
于 2013-03-28T16:15:02.750 回答
0

我会说玩弄你使用 CGRectMake 来创建框架的 Y 大小。也许让它变小?

于 2012-07-12T23:49:06.900 回答
0

根据UITextField文档,您应该使用该textAlignment属性。正如文档所述,“此属性适用于主文本字符串和占位符字符串。此属性的默认值为 UITextAlignmentLeft。”

所以你的代码看起来像:

textfield.textAlignment = UITextAlignmentLeft

或者取决于你想如何对齐你可以使用的文本UITextAlignmentCenterUITextAlignmentRight=标志之后。

于 2012-07-12T23:11:03.370 回答