UITextField:如何将其高度增加并使输入文本垂直居中?

8

带有边框样式UITextBorderStyleRoundedRectUITextField默认高度为31px。对于iPad应用,我想要创建一个高度为60px的UITextField并使文本垂直居中以便更美观(默认情况下文本只会绘制在UITextField上方边框略下几个像素的位置)。

如果我按照以下步骤进行操作...

UITextField *txtLogin = [[UITextField alloc] initWithFrame:CGRectMake(200,200,300,60)];
txtLogin.borderStyle = UITextBorderStyleRoundedRect;

...结果看起来像这样:http://grab.by/6jRc

正如您所见,输入文本并没有垂直居中。我尝试寻找解决方案,并发现我只需从UITextField继承自己的自定义类并覆盖- (CGRect)textRectForBounds:(CGRect)bounds方法即可。
然而,此方法从未被调用,并且根据此链接显示,Apple的API存在错误。因此,我正在寻找替代方案。

有什么好的解决方案来解决这个问题并实现输入文本的正确垂直对齐?

1个回答

21

[txtLogin setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter];

可以将文本框中的内容垂直居中显示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接