iPhone: замена вида Клетки с UITextField

голоса
0

Я в основном пытаюсь добавить UITextField в UITableViewCell при Tableview: commitEditingStyle: forRowAtIndexPath :. На вставке, я хочу, чтобы добавить UITextField поверх существующей ячейки.

Я настроить TextField с чем-то вроде этого:

-(void) setUpIndexField {
    inputField = [[UITextField alloc] init];
    inputField.textAlignment = UITextAlignmentCenter;
    inputField.borderStyle = UITextBorderStyleRoundedRect;    
    inputField.keyboardType = UIKeyboardTypeNamePhonePad;
    inputField.delegate = self;
 }

Тогда в commitEditingStyle, у меня есть что-то такое, как:

- (void)tableView:(UITableView *)tv
    commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
    forRowAtIndexPath:(NSIndexPath *)indexPath 
{
    NSInteger row = [indexPath row];
    if (editingStyle == UITableViewCellEditingStyleInsert) {
    if (row == 0) {
        UITableViewCell *cell = [tv cellForRowAtIndexPath:indexPath];
        inputField.frame = [tv cellForRowAtIndexPath:indexPath].frame;
        [cell.contentView addSubview:inputField];
        [inputField becomeFirstResponder];
        return;
    }
// more code etc.
}

Когда я нажимаю на аксессору Insert (+), текстовое поле не действительно получить шлепнулся на экране, но не где рядом с клеткой, которая щелкая его. Она уходит в случайную часть UIView, а не фактической ячейки для indexPath при котором + была нажата.

Insight, где я пошел не так, и как я могу поместить UITextField на ячейку, где + щелкнули бы идеально.

Задан 23/02/2009 в 22:42
источник пользователем
На других языках...                            


1 ответов

голоса
1

Вы устанавливаете кадр inputFieldв кадре из клетки , которая не будет делать то , что вы хотите. Просмотров внутри клетки используют верхнюю левую часть рамы 0,0. Ваш TextField кадр должен быть:

inputField.frame = CGRectMake(0, 0, cell.frame.size.width, cell.frame.size.height);

Так что по отношению к нему SuperView, что поместит текстовое поле, так что она полностью покрывает другие виды в этой ячейке.

Ответил 23/02/2009 в 22:50
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more