2010-09-10 47 views
8

带有边框样式UITextBorderStyleRoundedRectUITextField的默认高度为31px。对于iPad应用程序,我想制作一个高度为60px的UITextField,并将文本垂直居中放置,以使其看起来很好(默认情况下文本仅在UITextField的顶部边界下方绘制几个像素)。UITextField:将其设置得更高并将输入文本垂直居中放置

,如果我做了以下...

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

......结果是这样的:http://grab.by/6jRc

正如你所看到的,在输入文本不垂直居中。我试图找到一个解决方案,并发现我只需从UITextField继承我自己的自定义类并重写- (CGRect)textRectForBounds:(CGRect)bounds方法。 但是,这种方法从来没有被调用过,根据this link,Apple的API中存在一个错误。因此,我正在寻找可行的替代方案。

什么是解决此问题并实现输入文本的正确垂直对齐的良好解决方案?

回答

21

[txtLogin setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter];

+0

谢谢,这对我有用。 – kiteloop 2010-10-29 08:38:44