Текстовые поля обновляются при прокрутке таблицы - PullRequest
0 голосов
/ 08 ноября 2011

Пожалуйста, смотрите код

   - (UITableViewCell *)tableView:(UITableView *)tableView
     cellForRowAtIndexPath:(NSIndexPath *)indexPath
   {

static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";
UITableViewCell *cell = [tableView
                         dequeueReusableCellWithIdentifier:SimpleTableIdentifier];
UILabel *playerHeading;
UITextField *txt;


if (cell == nil)
{
    cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault
                                  reuseIdentifier:SimpleTableIdentifier] autorelease];
    playerHeading=[[UILabel alloc ]initWithFrame:CGRectMake(5.0f, 10.0f, 70.0f, 30.0f)];
    txt=[[UITextField alloc]initWithFrame:CGRectMake(80.0f, 13.0f, 170.0f, 30.0f)];
    txt.tag=2;
    [txt setBackgroundColor:[UIColor clearColor]];

    //[txt setTextColor:[UIColor blackColor]];

    //[txt setBackgroundColor:[UIColor whiteColor]];
    [txt setTextColor:[UIColor grayColor]];
    txt.delegate=self;
    //[txt setBorderStyle:UIBorderStyle ]
    [txt setText:@"Enter Player name"];
    //txt.layer.cornerRadius=8.0f;
    //   txt.layer.masksToBounds=YES;
    //txt.layer.borderColor=[[UIColor redColor]CGColor];
    //   txt.layer.borderWidth= 1.0f;


    [playerHeading setBackgroundColor:[UIColor clearColor]];
    [playerHeading setFont:[UIFont boldSystemFontOfSize:15]];
    [playerHeading setTag:1];
    [playerHeading setBackgroundColor:[UIColor clearColor]];


    NSString *str=[NSString stringWithFormat:@"Player %i",indexPath.row];
    [playerHeading setText:str];
    [playerHeading setFont:[UIFont boldSystemFontOfSize:15]];

//          NSLog(@"row %i ,section %i",indexPath.row,indexPath.section);


    [cell.contentView addSubview:playerHeading];
}
else
{
    playerHeading = [cell.contentView viewWithTag:1];
    txt=[cell.contentView viewWithTag:2];

//  NSLog(@"row %i ,section %i",indexPath.row,indexPath.section);


}
if(indexPath.section%2==0){

    playerHeading.textColor=[UIColor blueColor];

}

else{
    playerHeading.textColor=[UIColor redColor];

}

playerHeading.text = [NSString stringWithFormat:@"Player %i",indexPath.row];

    txt.tag=indexPath.section;
   //   NSString *nam=[NSString stringWithFormat:@"%i",indexPath.row];
   //   [txt setName:nam];

//txt.clearsOnBeginEditing=YES;
[cell.contentView addSubview:txt];
//cell.accessoryView=txt;
return cell;

   }

Я создал UITable с 7 разделами, каждый из которых содержит 4 игрока. Пользователю необходимо заполнить текстовые поля в строке досягаемости, но проблема в том, что когда я прокручиваю текстовые поля таблицы становятся по умолчанию, пожалуйста, помогите, как я могу установить текстовые поля к фиксированному значению, введенному с помощью

1 Ответ

0 голосов
/ 08 ноября 2011

Для решения вашей проблемы необходимо сохранить введенную пользователем строку в структуре данных, которая обеспечит легкий доступ к строке с помощью section и row .

Вы можете использовать NSMutableDictionary , ключ которого будет номер раздела , который будет хранить массив, а индекс массива 'row' даст вам строку набрано в этом конкретном текстовом поле.

В cellForRowAtIndexPath вам придется проверить, существует ли строка для этой ячейки, иначе покажите строку по умолчанию или заполнитель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...