Я пытаюсь объединить пространство экрана в своем приложении iPhone, помещая текст ярлыка внутри UITextField, который будет неотредактирован. Он скажет пользователю, что помещать в текстовое поле. Вот пример приложения, которое делает именно то, что я хочу сделать.Добавить UILabel в левой части UITextField
Я сделал свое исследование и нашел некоторый код для имитации это в некоторой степени.
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. Дает код что-то вроде этого:
Очевидно, что с моделированием и тонкой настройки это может работать, но мне было интересно, если есть лучший способ сделать это, что я не вижу. Если у кого-то есть советы, идеи или примеры кода, чтобы заставить меня двигаться в правильном направлении, я бы очень признателен.
Имея как метки и заполнителя является излишним. Нет метки для этикетки. Просто используйте место для текстового поля. – rmaddy
У вас всегда может быть только 3 элемента: фоновое изображение, метка и текстовое поле. Затем вы можете настроить каждый отдельно и не нужно слишком сильно манипулировать свойствами UITextView. – bachonk
Мне кажется, что вы нашли именно то, что вам нужно. Я не знал о представлениях оверлей, UITextFieldViewModeAlways или свойства leftView UITextFields, но, глядя на документы, похоже, они точно поддерживают то, что вам нужно. Внешний вид UIElements сильно изменился между iOS 6 и iOS 7. Я бы пообещал, что внешний вид, который вы разместили для поля «Exerise Name» (sic), находится в приложении, созданном для iOS 7 и запущенном под управлением iOS 7, и на экране примера от SunTrust - приложение iOS 6 (даже если оно работает под iOS 7.) Попробуйте сыграть с свойством borderStyle. –