2013-11-18 4 views
-2

Я определил 3 раздела с разными номерами ячеек на каждом. Он работает, но при редактировании текста все еще есть. Я попытался очистить содержимое, когда начал печатать, но не работал.Загрузка текста в ярлыке внутри ячейки UITableView

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
    static NSString *CellIdentifier = @"Cell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

// Configure the cell... 

if (cell == nil) { 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
} 


UITextField *fdates = [[UITextField alloc] initWithFrame:CGRectMake(110, 10, 185, 30)]; 
fdates.adjustsFontSizeToFitWidth = YES; 


UITextField *fdeparture= [[UITextField alloc] initWithFrame:CGRectMake(110, 10, 185, 30)]; 
fdeparture.adjustsFontSizeToFitWidth = YES; 

UITextField *farrival = [[UITextField alloc] initWithFrame:CGRectMake(110, 10, 185, 30)]; 
farrival.adjustsFontSizeToFitWidth = YES; 

UITextField *faircraft = [[UITextField alloc] initWithFrame:CGRectMake(110, 10, 185, 30)]; 
faircraft.adjustsFontSizeToFitWidth = YES; 

if ([indexPath section] == 0) { 

    if ([indexPath row] == 0) { 
    fdates.text = fplan.dates; 
    fdates.keyboardType = UIKeyboardTypeNumbersAndPunctuation; 
    fdates.returnKeyType = UIReturnKeyNext; 

    } 
}else if ([indexPath section] == 1) { 

    if (indexPath.row == 0) { 
    fdeparture.text = fplan.depAirport; 
    fdeparture.keyboardType = UIKeyboardTypeDefault; 
    fdeparture.returnKeyType = UIReturnKeyNext; 

    }else { 

    farrival.text = fplan.destAirport; 
    farrival.keyboardType = UIKeyboardTypeDefault; 
    farrival.returnKeyType = UIReturnKeyNext; 

    } 
}else { 

    if (indexPath.row == 0) { 

    faircraft.text = fplan.aircraft_id; 
    faircraft.keyboardType = UIKeyboardTypeDefault; 
    faircraft.returnKeyType = UIReturnKeyNext; 
    // faircraft. 

} 
} 

[cell.contentView addSubview:fdates]; 
[cell.contentView addSubview:fdeparture]; 
[cell.contentView addSubview:farrival]; 
[cell.contentView addSubview:faircraft]; 

return cell; 
} 

Чтобы быть более ясным:

enter image description here

Спасибо !!

+0

Попробуйте обновить TableView после редактирования сделать – Tendulkar

+2

Это потому, что вы добавляете текстовые поля в ячейку каждый раз, даже если повторное использование клеток происходит. Вы должны перемещать вызовы 'addSubView' в отдельных циклах' if-else' только тогда, когда ячейка вновь создается. Не добавляйте текстовые поля, если ячейка повторно используется. – Amar

+0

Это обычная проблема. Ячейки повторно используются, и вы в конечном итоге добавляете subviews снова и снова в ячейку при повторном использовании. – rmaddy

ответ

-1

Попробуйте добавить в ячейке не на просмотр контента .... Для получения дополнительной информации см ниже ....

[cell addSubview:fdates]; 
[cell addSubview:fdeparture]; 
[cell addSubview:farrival]; 
[cell addSubview:faircraft]; 
+0

Это очень помогает, но - Амар дал правильный ответ. Благодаря!! работающ отлично !! – kate

+0

Почему этот ответ был опущен? –

+1

@NikosM. Этот ответ совершенно неверен и не имеет ничего общего с проблемой. Содержимое должно быть добавлено в 'contentView', а не в ячейку. Но в любом случае это не проблема. – rmaddy

1

попробовать следующий код. я отредактировал использовать код этого

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    // Configure the cell... 

    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    } 


    UITextField *fdates = [[UITextField alloc] initWithFrame:CGRectMake(110, 10, 185, 30)]; 
    fdates.adjustsFontSizeToFitWidth = YES; 



    if ([indexPath section] == 0) { 

     if ([indexPath row] == 0) { 
      fdates.text = fplan.dates; 
      fdates.keyboardType = UIKeyboardTypeNumbersAndPunctuation; 
      fdates.returnKeyType = UIReturnKeyNext; 

     } 
    }else if ([indexPath section] == 1) { 

     if (indexPath.row == 0) { 
      fdates.text = fplan.depAirport; 
      fdates.keyboardType = UIKeyboardTypeDefault; 
      fdates.returnKeyType = UIReturnKeyNext; 

     }else { 

      fdates.text = fplan.destAirport; 
      fdates.keyboardType = UIKeyboardTypeDefault; 
      fdates.returnKeyType = UIReturnKeyNext; 

     } 
    }else { 

     if (indexPath.row == 0) { 

      fdates.text = fplan.aircraft_id; 
      fdates.keyboardType = UIKeyboardTypeDefault; 
      fdates.returnKeyType = UIReturnKeyNext; 
      // faircraft. 

     } 
    } 

    [cell.contentView addSubview:fdates]; 


    return cell; 
} 
Смежные вопросы