UITextField:使其更高并将输入文本垂直居中放置

kit*_*oop 8 iphone alignment uitextfield ipad ios

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

如果我做以下......

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

......结果如下:http://grab.by/6jRc

如您所见,输入文本不是垂直居中的.我试图找到一个解决方案,发现我只需从UITextField继承自己的自定义类并覆盖该- (CGRect)textRectForBounds:(CGRect)bounds方法.但是,此方法永远不会被调用,根据此链接,Apple的API中存在错误.因此,我正在寻找有效的替代方案.

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

小智 21

[txtLogin setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter];