los*_*sit 44 iphone uitextfield
我正在以编程方式创建一个UITextField并将其放在UIView中.字体大小设置为15.0f(系统字体).但是出现的占位符不在文本视图中居中.谁知道如何解决这个问题?
我在SO上找到了一些关于模糊文本的引用等,并尝试使用整数值设置文本框的框架,但它没有什么区别.
UITextField *txtField = [[UITextField alloc] initWithFrame:CGRectMake(5.0f, 6.0f, 278.0f, 32.0f)];
[txtField setPlaceholder:@"My placeholder"];
[txtField setFont:[UIFont systemFontOfSize:15.0]];
[txtField setBorderStyle:UITextBorderStyleRoundedRect];
[txtField setAutocorrectionType:UITextAutocorrectionTypeNo];
[txtField setAutocapitalizationType:UITextAutocapitalizationTypeNone];
[txtField setKeyboardType:UIKeyboardTypeEmailAddress];
[txtField setReturnKeyType:UIReturnKeyDone];
[txtField setClearButtonMode:UITextFieldViewModeWhileEditing];
Run Code Online (Sandbox Code Playgroud)
感谢您的任何帮助
注意:我的意思是文本不是在文本字段中垂直居中(它有点朝向顶部).因此,设置文本对齐不是解决方案.
添加问题图像以便澄清 - 如图所示,占位符文本更靠近顶部而不是垂直居中.

jer*_*jer 56
你需要添加:
txtField.textAlignment = NSTextAlignmentCenter; // Pre-iOS6 SDK: UITextAlignmentCenter
Run Code Online (Sandbox Code Playgroud)
请记住,这会调整占位符文本的对齐方式以及用户输入的文本.
如何垂直居中
由于原始问题已更新以请求如何垂直对齐占位符文本,并且该答案隐藏在注释中,以下是如何执行此操作:
txtField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
Run Code Online (Sandbox Code Playgroud)
anc*_*jic 18
这在iOS7上无法正常工作.在iOS7上,您必须覆盖TextField类和
- (void) drawPlaceholderInRect:(CGRect)rect
Run Code Online (Sandbox Code Playgroud)
方法.
像这样:
- (void) drawPlaceholderInRect:(CGRect)rect
{
[[UIColor blueColor] setFill];
CGRect placeholderRect = CGRectMake(rect.origin.x, (rect.size.height- self.font.pointSize)/2, rect.size.width, self.font.pointSize);
[[self placeholder] drawInRect:placeholderRect withFont:self.font lineBreakMode:NSLineBreakByWordWrapping alignment:self.textAlignment];
}
Run Code Online (Sandbox Code Playgroud)
适用于iOS7和早期版本.
| 归档时间: |
|
| 查看次数: |
29008 次 |
| 最近记录: |