将UILabel添加到UITextField的左侧

时间:2013-11-18 02:31:07

标签: ios iphone objective-c

我正在尝试通过将标签文本放在UITextField中来巩固我的iPhone应用程序中的屏幕空间,这将是不可编辑的。它将告诉用户将什么放入文本字​​段。以下是一个应用程序的示例,它完全符合我的要求。

enter image description here

我完成了我的研究并找到了一些代码来模仿这种程度。

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 80, 40)];
label.text= @"Exerise Name:";
label.font = [UIFont fontWithName:@"Arial" size:12];
[label setTextColor:[UIColor blueColor]];
_txtExerciseName.leftViewMode = UITextFieldViewModeAlways;
_txtExerciseName.leftView = label;

[self.view addSubview:_txtExerciseName];

这是在viewDidLoad中。代码产生如下:

enter image description here

显然,通过样式和调整,这可能会有效,但我想知道是否有更好的方法来做到这一点,我没有看到。如果有人有任何提示,想法或代码示例让我朝着正确的方向前进,我会非常感激。

2 个答案:

答案 0 :(得分:2)

我看到了一个非常酷的解决方案。当键盘出现/成为第一个响应者时,占位符文本移动到文本字段的顶部,然后当文本字段重新占用第一个响应者时,占位符文本消失。

实现

答案 1 :(得分:1)

您尝试模仿的效果几乎肯定是通过以下方式完成的:

  • 在图像编辑应用中创建看起来像文本框图像的内容,导入到项目中 - 您也可以通过切片进行创建,这样您就可以创建任何宽度的场背景。
  • 将上述图像放在您想要标签和文本字段的位置
  • 将无边框UILabel和无边框UITextField放置在刚刚删除的图像上方的适当位置。

应该这样做。无需更改代码。