ios - UITextField 内的标签

标签 ios objective-c cocoa-touch interface-builder uitextfield

在我的应用程序中,我正在尝试创建如下所示的 UITextFields:

| Name:      John Doe       |
| Email:     asdf@gmail.com |
| Number:    (123)456-7890  |

名称是一个永远不可编辑的左 View 标签,标签上有一个小的常量左填充,标签上有一个右填充,因此占位符文本/文本字段中的实际文本都从同一个地方开始。

我试着给它们一个恒定的宽度,然后从左边填充标签,但是标签文本一直出现在左边,那里没有填充,就像这样:

|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 制作的,看起来应该是这样,除了:

文本/占位符需要从左 View 标签填充。它似乎就在它旁边,但需要填充。如何添加此填充?

最佳答案

不幸的是,我求助于创建 UITextField 的子类并更改文本字段左 View 的原点。这是我所做的:

- (CGRect) leftViewRectForBounds:(CGRect)bounds {
    CGRect textRect = [super leftViewRectForBounds:bounds];
    textRect.origin.x += 10;
    return textRect;
}

关于ios - UITextField 内的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20875350/

相关文章:

objective-c - ASIHTTPRequest 在请求 :willRedirectToUrl: is implemented 时停止下载

ios - 如何获取通过 Storyboard添加到 View 的控件的句柄?

iOS 实例变量获取 "NULLED"未知原因

ios - 通过按钮调用时 cocoa 动画不触发

ios - 两个 UIViewImages 的交集

ios - Xamarin iOS 自动布局 : Resize width and vertical scroll automatically for various devices while keeping the horizontal scroll disabled

ios - 如何取消 [NSURLConnection sendAsynchronousRequest :. .] 发送的请求

objective-c - appendBezierPathWithGlyph 在 [NSBezierPath currentPoint] 中失败

ios - 如何使用 UICollectionViewLayout 以编程方式在 UICollectionView 上添加 header

ios - 下拉显示 View