2015-03-14 2 views
0

Я действительно работаю в форме регистрации в своем приложении iOs.UITextField проблемы с центрированием заполнитель и смена цветной записи клавиатуры

Я по-прежнему новичок в iOS, но мне удалось создать красивую регистрационную форму благодаря настройке uiTableViewCell и uiTextField.

Я столкнулся 2 проблемы прямо сейчас, что я не в решении фактически:

1) Когда я выравнивать свою UITextField по центру, это на самом деле не центр его или, возможно, это делает, но затем он начинает писать свою строку в центре вместо того, чтобы центрировать сама строку, даже несмотря на то, что я инициализировал свой TextField с помощью своих кадров ячеек (если нужно, см. рисунок).

2) Мне удалось изменить цвет текста UITextField, но когда клавиатура показывает, на самом деле он начинает писать черный вместо белого. Могу ли я это изменить?

Извините за мой плохой английский, а не мой родной язык, но все еще пытается и поблагодарить вас за вашу помощь

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSString *identifier = @"id"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier]; 
    if (cell == nil){ 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]; 
    } 
    if (indexPath.section == 0){ 
    self.LastName = [[UITextField alloc] initWithFrame:cell.contentView.bounds]; 
    self.LastName.placeholder= @"Name"; 
    self.LastName.autocorrectionType = UITextAutocorrectionTypeNo; 
    self.LastName.delegate = self; 
    self.LastName.textAlignment = NSTextAlignmentCenter; 
    [self.LastName setValue:[UIColor whiteColor] forKeyPath:@"_placeholderLabel.textColor"]; 

    [cell.contentView addSubview:self.LastName]; 
} 
else if (indexPath.section == 1) 
    cell.textLabel.text = @"Name"; 

cell.textLabel.textAlignment = NSTextAlignmentCenter; 

Первая клетка мой UITextField и второй мой нормальный по центру клетки (я не собственные 10 репутации, так что я может просто дать вам парням ссылку на изображение, извините .. http://s22.postimg.org/sep2kcvrl/not_Working.png

+0

Вы хотите центрировать текст в текстовом поле или в центре поля текста? – SandeepAggarwal

+0

Я хотел бы получить тот же результат, чем cell.textLabel.textAlignment, центрировать строку в ячейке и не начинать писать с центра до правого угла. Я не знаю, достаточно ли было достаточно. –

ответ

0

Вы просто изменить цвет текста-заполнителя, чтобы изменить цвет текста в текстовом поле:

[self.LastName setTextColor:[UIColor whiteColor]]; 

Для выравнивания текста Заполнителя и текстового поля к центру:

[self.LastName setTextAlignment:NSTextAlignmentCenter]; 
+0

Просто установка цвета хорошо работала для проблемы с клавиатурой, спасибо, но я все равно получаю тот же результат, что и на моем снимке, даже с исправлением о выравнивании, он поддерживает выравнивание начала строки вместо сама строка, к сожалению :( –

0

Что касается второго вопроса:

Существует свойство «defaultTextAttributes» в UITextField вы можете использовать для цвета (Доступно в iOS7 +).

NSMutableDictionary* textFieldAttrib = [[self.textField defaultTextAttributes] mutableCopy]; 
textFieldAttrib[@"NSColor"] = [UIColor redColor]; 
self.textField.defaultTextAttributes = textFieldAttrib; 

Вы можете изменить цвет замещающий также через свойство "attributedPlaceholder" (Доступно в iOS6 +).

NSString *placeHolderText = @"some placeholder"; 
NSAttributedString *placeholder = [[NSAttributedString alloc] initWithString: placeHolderText 
                    attributes:@{NSForegroundColorAttributeName : [UIColor greenColor]}]; 

self.textField.attributedPlaceholder = placeholder;