将UILabel添加为UITextField左侧的常量字段

时间:2014-09-12 06:09:05

标签: ios uitextfield

我正面临着问题,我希望在UITextField中有一个静态文本。

像“UserName:”这样的文字应该不断出现在UITextField的左侧。编辑UITextField应该从“UserName:”文本结束的位置开始。

例如,在iPhone设置中,如果我们转到Twitter应用并尝试添加新帐户。用户名和密码文本字段的样子。我想像那样发展。

5 个答案:

答案 0 :(得分:4)

我不明白为什么每个人都发布了这样一个简单问题的偏离轨道的答案。

你只需这样做:

  • 创建UILabel,其中UI与您textField相称。
  • 您设置了文字(用户名:等)。
  • 将其分配到textField的{​​{1}}媒体资源。

就是这样。你必须检查框架,但这是基本的,我相信你可以不费吹灰之力就做到这一点。

更新:示例代码

enter image description here

enter image description here

enter image description here

leftView

只需稍作调整即可。

答案 1 :(得分:0)

尝试使用两个文本字段(一个与其他文本部分重叠)或实现以下代码。

-(void)viewDidAppear:(BOOL)animated{

   yourTextField.text = @"UserName:";
}

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

      //handle back spaces and error conditions

      NSString *editedText = [textField.text stringByReplacingCharactersInRange:range withString:string];

      if([editedText isEqualToString: @"UserName"])
      {
        return NO;
      }
      else
      {
          yourTextField.text =  editedText;
          return YES;
       }
}

答案 2 :(得分:0)

以下代码可满足您的需求。

UIView *vis = [[UIView alloc]initWithFrame:CGRectMake(0, 200, 320, 50)];

UILabel *lblUserName = [[UILabel alloc]initWithFrame:CGRectMake(5, 5, 120, 40)];


UITextField *txtUserName =[[UITextField alloc]initWithFrame:CGRectMake(125, 5, 180, 40)];
lblUserName.text= @"User Name";
txtUserName.placeholder = @"@User Name";
[vis addSubview:lblUserName];
[vis addSubview:txtUserName];
[vis setBackgroundColor:[UIColor whiteColor]];
[self.view addSubview:vis];

此致

阿米特

答案 3 :(得分:0)

请尝试此代码。我相信这会对你有帮助。

UILabel *lblLeft = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 70, 30)];
lblLeft.backgroundColor = [UIColor clearColor];
lblLeft.text = @"Name: ";
lblLeft.textColor = [UIColor lightGrayColor];
lblLeft.font = [UIFont systemFontOfSize:14.0];

txtYourTextField.leftView = lblLeft;

快乐编码:)

迪帕克

答案 4 :(得分:-2)

要快速解决方案,请使用两个重叠的文本字段进行此操作:

enter image description here

然后将文本域边框样式更改为No border样式并禁用以下文本字段的用户交互:

enter image description here