UITextField会使占位符居中并更改键盘颜色写入

时间:2015-03-14 14:40:06

标签: ios objective-c uitableview uitextfield

我实际上正在将注册表格纳入我的iOs申请表。

我还是iOs的新手,但是由于uiTableViewCell定制和uiTextField,我设法制作了一个好看的注册表。

我现在面临两个问题,实际上我没有解决问题:

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

2 个答案:

答案 0 :(得分:0)

您只是更改占位符文本的颜色,以更改文本字段中文本的颜色:

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

将占位符和文本字段的文本对齐到中心:

[self.LastName setTextAlignment:NSTextAlignmentCenter];

答案 1 :(得分:0)

关于第二个问题:

有" defaultTextAttributes" UITextField中的属性可以用于颜色(在iOS7 +中可用)。

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

您也可以通过" attributionPlaceholder"更改占位符颜色。 property(在iOS6 +中可用)。

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

self.textField.attributedPlaceholder = placeholder;