изменить цвет ячейки при ее нажатии в UITableView - PullRequest
0 голосов
/ 10 ноября 2011

Я использую UITableView в своем приложении, и я создал пользовательскую ячейку в файле DealsCC.xib, и при нажатии на ячейку цвет ячейки должен быть изменен на синий, но в моем коде этого не происходит. Я пишу код следующим образом:

static NSString *MyIdentifier = @"dealsCC";
    dealsCC *cell = (dealsCC *)[tableView dequeueReusableCellWithIdentifier:MyIdentifier];
    [cell selectionStyle:UITableViewCellSelectionStyleBlue];

Хочу отметить, что в строке

[cell selectionStyle:UITableViewCellSelectionStyleBlue];

Сообщение о предупреждении существует, и это "dealCC может не отвечать на -selectionStyle"

плз, помогите мне решить эту проблему Спасибо заранее.

Ответы [ 3 ]

1 голос
/ 10 ноября 2011

Попробуйте это в своем пользовательском классе для ячейки табличного представления

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
       self.selectionStyle = UITableViewCellSelectionStyleBlue;
       [super setSelected:selected animated:animated];

}

Предупреждение, потому что метод должен быть

[cell setSelectionStyle:UITableViewCellSelectionStyleBlue];

а не [cell selectionStyle:UITableViewCellSelectionStyleBlue];

1 голос
/ 10 ноября 2011

см. Следующие ссылки на стекопоток, проверьте, правильно ли вы их исправили 1) link1 2) link2 3) введите описание ссылки здесь

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

Используйте cell.selectionStyle = UITableViewCellSelectionStyleGray; для изменения стиля выделения ячеек.Но здесь selectionStyle принимает только ввод типа UITableViewCellSelectionStyle.

Для изменения цвета вам нужно использовать Image.Используйте свойство selectedBackgroundView.image и следуйте учебной ссылке

Или вы также можете попробовать

    cell.selectedBackgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
    cell.selectedBackgroundView.backgroundColor = [UIColor redColor];

РЕДАКТИРОВАТЬ:

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

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     static NSString *CellIdentifier = @"myCellId";
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     if (cell == nil) {
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
     UIView *v = [[[UIView alloc] init] autorelease];
     v.backgroundColor = [UIColor redColor]; // any color of your choice.
     cell.selectedBackgroundView = v;
      // After this line add all other controlls you are adding...
     }
// Set up the cell...
cell.textLabel.text = @"foo";
return cell;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...