NSTextAligment仅在编辑文本字段后应用

时间:2014-05-22 07:28:45

标签: ios uitextfield

我创建了表视图单元格,其中包含我的自定义文本字段,UITextField的子类。当我向我的单元格添加文本字段时,我设置了

textField.textAlignment = NSTextAlignmentCenter;

我在文本字段上有占位符。当我的细胞出现时,它的对齐是左和中间之间的平均值。然后编辑后成为中心。在创建单元格后我需要中心对齐。任何人都可以帮忙解决这个问题吗?

修改

我的CellForRowAtIndexPath方法:

- (CTKMultiColumnTableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *reuseIdentifier = [NSString stringWithFormat:@"cell%d",indexPath.section];
    CTKMultiColumnTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier];
    if (cell == nil) {
        cell = [[CTKMultiColumnTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier];
        [cell setFrameWithRect:CGRectMake(0, 0, tableView.frame.size.width, 34)];
    }
    cell.textField.placeholder = [_placeholders objectAtIndex:tableView.tag];
    cell.delegate = self;
    cell.relatedTableView = tableView;

    return cell;
}

和willDisplayCell方法的一部分

- (void)tableView:(UITableView *)tableView willDisplayCell:(CTKMultiColumnTableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    switch (tableView.tag) {

        case 4:
            cell.textField.leftView = nil;
            cell.textField.rightView = nil;
            cell.textField.textAlignment = NSTextAlignmentCenter;
            cell.textField.keyboardType = UIKeyboardTypeNumberPad;
            cell.isPickable = NO;
            cell.valueLimitMin = 0;
            cell.valueLimitMax = 1000;

            if (((CTKRoom *)[_roomsArray objectAtIndex:indexPath.section]).heatedArea) {
                cell.textField.text = [NSString stringWithFormat:@"%@", ((CTKRoom *)[_roomsArray objectAtIndex:indexPath.section]).heatedArea];
            }
            else cell.textField.text = @"";
            break;


}

这部分是将属性设置为我的单元格的示例

1 个答案:

答案 0 :(得分:0)

我解决了我的问题。原因是

myTextField.rightViewMode = UITextFieldViewModeAlways;

在我的情况下,右视图是必要的,所以如果不需要,我设置

myTextField.rightView.frame = CGRectMake(0, 0, 1, 0);