it-swarm.com.ru

UITableViewCell. Как мне просто выделить ячейку во время касания?

У меня есть пользовательский tableViewCell. Я хочу указать пользователю приземление, выделив. Стиль выбора ячейки - UITableViewCellSelectionStyleBlue. В родительском контроллере я установил self.clearsSelectionOnViewWillAppear = YES.

Мне должно быть хорошо идти. Нету. Выбор все еще прилипает к клетке. То, что я хочу, это индикация выбора только на время касания. Появление должно немедленно вернуться к невыбранному появлению при корректировке.

Как мне это сделать?

Ура,
Дуга

18
dugla
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    [tableView deselectRowAtIndexPath:indexPath animated:YES];

}
43
Dancreek

Ниже Swift пример использует didHighlightRowAtIndexPath для изменения цвета фона ячейки при касании и didUnhighlightRowAtIndexPath для сброса цвета - см. Ниже:

// MARK: UITableViewDelegate

func tableView(tableView: UITableView, didHighlightRowAtIndexPath indexPath: NSIndexPath) {
  if let cell = tableView.cellForRowAtIndexPath(indexPath) {
     cell.backgroundColor = UIColor.greenColor()
  }
}

func tableView(tableView: UITableView, didUnhighlightRowAtIndexPath indexPath: NSIndexPath) {
  if let cell = tableView.cellForRowAtIndexPath(indexPath) {
     cell.backgroundColor = UIColor.blackColor()
  }
}
13
Zorayr

перезаписать - (void)setSelected:(BOOL)selected animate:(BOOL)animated без вызова супер

0
Jonathan Cichon

Это работает:

Он получает фоновый вид с границей ячейки, похожей на разделитель. Не изменяйте настройки табличного представления по умолчанию в Интерфейсном конструкторе. Убедитесь, что UITableViewCellSelectionStyleNone НЕ установлен в selectionstyle. Я вставляю рабочий код. :

   - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *kCellIdentifier = @"PlayListCell";
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:kCellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:kCellIdentifier];
}
MPMediaPlaylist *playList = [playlistCollection objectAtIndex:indexPath.row];
cell.textLabel.text = playList.name;
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
 // cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d Songs",[playList.items count]];
MPMediaItemCollection *playListMediaCollection = [playlistCollection objectAtIndex:indexPath.row ];

cell.imageView.image =[UIImage imageWithCGImage:[self getImageForCollection:playListMediaCollection.items]];

// the main code which make it highlight

UIView *bgColorView = [[UIView alloc] init];
bgColorView.backgroundColor = [UIColor colorWithRed:170.0f/255.0 green:170.0f/255.0 blue:170.0f/255.0 alpha:1.0f];
[bgColorView.layer setBorderColor:[UIColor blackColor].CGColor];
[bgColorView.layer setBorderWidth:1.0f];
[cell setSelectedBackgroundView:bgColorView];


return cell;

}

0
Ankish Jain