2014-09-12 2 views
1

Я столкнулся с проблемой, я хочу иметь статический текст в UITextField.Добавить UILabel как постоянное поле слева от UITextField

Текст, подобный «UserName:», должен появляться постоянно в левой части UITextField. Редактирование UITextField должно начинаться с того, где заканчивается текст «UserName:».

Например, в настройках iPhone, если мы заходим в приложение Twitter и пытаемся добавить новую учетную запись. То, как выглядит имя пользователя и текстовое поле пароля. Я хочу так же развиваться.

+0

Попробовать, UITabelViewCell с UILabel & UITextField .. вам нужно сделать некоторые эскиз конструкции, чтобы получить его (мнемосхема). –

+0

Спасибо @KumarKL за быстрый ответ. Нет, я не хочу использовать UITableViewCell для этого. Есть ли другое решение. – Rakesh

+0

@KumarKL У вас есть учебник для использования UITableViewCell. – Rakesh

ответ

4

я не понимаю, почему все уже разместил такие от следа ответы на такой простой вопрос.

Вы просто сделать это:

  • Создать UILabel с UI подарив вам textField.
  • Вы задали свой текст (Имя пользователя: и т. Д.).
  • Присвоить его textFieldleftView.

Всё. Вам нужно будет проверять рамки, но это базовое, и я считаю, что вы можете сделать это без особых усилий.

UPDATE: Пример кода

enter image description here

enter image description here

enter image description here

UITextField* aField = [[UITextField alloc] initWithFrame:CGRectMake(20, 200, 300, 40)];  
aField.placeholder = @"Please enter a username";  
aField.layer.borderWidth = 1.0f;  
aField.backgroundColor = [UIColor whiteColor];  
aField.layer.borderColor = [UIColor lightGrayColor].CGColor;  
aField.layer.cornerRadius = 3.0f;  

UILabel* aLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 90, 38)];  
aLabel.text = @"Username:";  
aLabel.font = aField.font;  
aLabel.textColor = [UIColor grayColor];  

aField.leftView = aLabel;  
aField.leftViewMode = UITextFieldViewModeAlways;  

[self.view addSubview:aField]; 

Только потребности незначительные корректировки.

+1

Спасибо .. Вы решили мою проблему .. Извините за поздний ответ .. – Rakesh

-2

Для быстрого решения, сделать это с помощью двух перекрывающихся TextFields, как это:

enter image description here

Затем измените стиль TextField границы для No border стиля и отключить взаимодействие с пользователем в поле ниже текстовое поле:

enter image description here

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; 
     } 
} 
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]; 

С уважением,

Amit

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; 

Днем Coding :)

Дипак

Смежные вопросы