2012-02-22 3 views
4

По какой-то причине ни один из моих UITableViewCell s не выделяет синий цвет. В IB у меня он установлен, чтобы выделить синий, и у меня нет кода, который переопределяет IB.UITableViewCell не выделяется

Вы заметили что-нибудь, что может вызвать это?

enter image description here

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    int showID = [[[singleton.programs objectAtIndex:indexPath.row]objectForKey:@"id"]intValue]; 
    //creates the url and loads the list of products 
    //NSLog(@"showID: %d", showID); 
    URLCreator * productsURL = [[URLCreator alloc] initStandard:@"getProgramProductsForList"]; 
    [productsURL addParam:@"id" stringValue:[NSString stringWithFormat:@"%d", showID]]; 
    WebManager *productsWM = [[WebManager alloc]init]; 
    [productsWM load:[productsURL finalURL] withSelector:@selector(parseProducts) object:[NSNumber numberWithInt:showID]]; 
} 

Мой заказ клетка не имеет ничего в ней в данный момент помимо `@ собственности/@ @ синтезировать, но здесь это.

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     // Initialization code 
    } 
    return self; 
} 

- (void)setSelected:(BOOL)selected animated:(BOOL)animated 
{ 
    [super setSelected:selected animated:animated]; 

    // Configure the view for the selected state 
} 
+2

Имейте в виду, что для размещения соответствующих кодов для пользовательских ячеек и функции делегата таблицы cellForRow ...?Возможно, в вашей пользовательской ячейке вы не вызываете [super setSelected:] или что-то еще, dunno – JiaYow

+0

Конечно, один момент. – Baub

+0

Обновлен код выше. – Baub

ответ

4

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

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

+0

С тех пор я удалил ссылку с IB на ViewController, и у меня все еще проблема. Я также удалил все подпрограммы И запустил новый TableViewController (только для тестирования) в том же проекте, и у меня такая же проблема. Это очень, очень странно. – Baub

1

Вот ошибка, которую я сделал в прошлом. Является ли ваш UITableView в режиме редактирования? Если да, включен ли выбор во время редактирования?

По умолчанию он не включен. В Interface Builder выберите UITableView и найдите свойство «Редактирование» в разделе «Просмотр таблицы» на панели «Утилиты». Убедитесь, что выбран «Single Selection In Editing».

Также проверьте, что в общем случае включен «Один выбор».

+0

Он не находится в режиме редактирования. В любом случае я включил «Single Selection In Editing» (на всякий случай), но все равно не играл в кости. :/ – Baub

+0

«tableView: didSelectRowAtIndexPath:' вызывается как ожидается, когда вы выберете строку? – Aaron

+0

Да. Все работает так, как ожидалось (за исключением этой чертовой подсветки! Lol) – Baub

4

Вы пробовали это ...?

[cell setSelectionStyle:UITableViewCellSelectionStyleBlue]; 
+0

Да, к сожалению, это все еще не работает. – Baub

+0

Это решило мою проблему, спасибо! – rweavere

0

Являются ли ваши подзоны для вашей камеры областью всей ячейки и полностью непрозрачны? если это так, даже уже выделенное синим цветом, эффект не будет виден.

+0

Нет, я удалил все подпункты. Я даже начал новый TableViewController с помощью кнопки, которая выводится непосредственно с главного экрана только для проверки. Все еще нет. Это странно. Единственный раз, когда я могу получить отбор для работы, - это совершенно новый проект. – Baub

1

Может быть, мимолетный ответ, но только для того, чтобы покрыть простые вещи, вы удостоверились, что вы назначили ячейку просмотра таблицы в свой пользовательский подкласс UITableViewCell?

Custom Class assignment

+0

Да. Даже когда я удалил его, чтобы проверить, будет ли выделение по умолчанию отсутствовать, это не так. Я даже начал новый TableViewController с помощью кнопки, которая выводится непосредственно с главного экрана только для проверки. Все еще нет. Это странно. Единственный раз, когда я могу получить отбор для работы, - это совершенно новый проект. – Baub

+0

Странно. если вы еще этого не сделали, запустите очистку, а затем перестройте. Также альтернативный способ получить подсветку - вызвать метод setHighlighted: анимированный: 'класса UITableViewCell, придерживаться этого в методе делегата' tableView: didSelectRowAtIndexPath: '. – Gobot

+0

Уже есть, к сожалению. :/ – Baub

0

Нет, я удалил все подземелья. Я даже начал новый TableViewController с помощью кнопки, которая выводится непосредственно с главного экрана только для проверки. Все еще нет. Это странно. Единственный раз, когда я могу получить отбор для работы, - это совершенно новый проект. - Джеймс вчера

Как вы упомянули, это происходит только в этом проекте, а не при запуске нового проекта вы пробовали очистить проект в Xcode (Продукт> Очистить) и удалить приложение из симулятора? Запустите снова. Решает множество странных проблем.

0

Вы сказали, что этого не происходит в новых проектах, попробовали ли вы создать новую раскадровку в своем проекте, чтобы убедиться, что это имеет какой-то эффект?

Файл .storyboard - это всего лишь XML-файл и, возможно, что-то плохое в XML-файле ... не помешает попробовать.

Смежные вопросы