UITextField 内的标签
Posted
技术标签:
【中文标题】UITextField 内的标签【英文标题】:Label inside UITextField 【发布时间】:2014-01-02 02:09:38 【问题描述】:在我的应用程序中,我正在尝试创建如下所示的 UITextField:
| Name: John Doe |
| Email: asdf@gmail.com |
| Number: (123)456-7890 |
名称是一个永远不可编辑的左视图标签,标签上有一个小的常量左填充,标签上有一个右填充,因此文本字段中的占位符文本/实际文本都从同一个位置开始。
我尝试给它们一个恒定的宽度,然后从左侧填充标签,但随后标签文本一直出现在左侧,没有填充,如下所示:
|Name: John Doe |
|Email: asdf@gmail.com |
|Number: (123)456-7890 |
现在,我尝试实现它的方式如下:
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 0, 70, 40)];
label.text = @"Name:";
label.font = [label.font fontWithSize:20];
label.textAlignment = NSTextAlignmentRight;
self.testTextField.layer.borderColor=[[UIColor lightGrayColor]CGColor];
self.testTextField.layer.borderWidth= 1.0f;
label.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.0];
self.testTextField.leftViewMode = UITextFieldViewModeAlways;
self.testTextField.leftView = label;
文本字段是用 IB 制作的,看起来应该是这样,除了:
文本/占位符需要左视图标签的填充。它似乎就在它旁边,但需要填充。如何添加此填充?
【问题讨论】:
【参考方案1】:不幸的是,我求助于创建 UITextField 的子类并更改文本字段左视图的原点。这是我所做的:
- (CGRect) leftViewRectForBounds:(CGRect)bounds
CGRect textRect = [super leftViewRectForBounds:bounds];
textRect.origin.x += 10;
return textRect;
【讨论】:
以上是关于UITextField 内的标签的主要内容,如果未能解决你的问题,请参考以下文章
动态/可出队的 UITableviewcells 内的 UITextfield
填写所有 UITextField 时,UIButton 未启用