2016-09-09 2 views
1

У меня возникла странная проблема. Я хочу отобразить пользовательскую ячейку, не выделяя ее. В моем в моей таблице есть 5 элементов, таких как UILabel, UIImage и т. Д. Проблема заключается в том, что я нажимаю на ячейку, иногда предупреждение не отображается. Это код в моем didSelectRowAtIndexPath:Пользовательский UITableViewCell иногда не отвечает

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:LocalizedString(@"Please input") delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; 
      [alert show]; 
      return; 

я делал широкое исследование о нем. Firsly, я изменил:

cell.selectionStyle = UITableViewCellSelectionStyleNone 

в

cell.selectionStyle = UITableViewCellSelectionStyleDefault 
UIView *bgColorView = [[UIView alloc] init]; 
bgColorView.backgroundColor = [UIColor myCellColor]; 
[cell setSelectedBackgroundView:bgColorView]; 

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

Мне было интересно, как решить эту проблему без высокой пользовательской ячейки.

Редактировать примечание:

didSelectRowAtIndexPath всегда вызывается, но не всегда отображается AlertView.

Не имеет значения простой UIAlertController или UIAlertView. Оба они иногда не отображаются.

+0

попробуйте показать 'UIAlertView' в главной теме, и вы должны прекратить использовать его, он устарел –

+0

Как вы обнаруживаете прикосновение к своей ячейке? Использование делегата tableView или что-то еще? –

+0

Я использую делегат tableView по умолчанию и использую didSelectRowAtIndexPath – birdcage

ответ

1

Скорее всего, вы охвачены вам всю клетку с некоторыми компонентами пользовательского интерфейса, так что вы косяк действительно коснуться ячейки, чтобы выполнить didSelectRowAtIndexPath метод см пример изображения ниже.

Вся зеленая часть cell и uibutton светло-голубой:

enter image description here

Так что это привычка обнаружит прикосновение каждый раз над клеткой и выполнить didSelectRowAtIndexPath метод правильно ..

Надеется, что это помогает.

+0

Да, у меня много компонентов в ячейке. Представьте себе ячейки instagram или facebook. Как это. Но я не понимаю, почему это иногда не реагирует, а иногда и на то, что я касаюсь. – birdcage

+0

Да, возможно, это ваша проблема, вы можете сделать это, добавив кнопку и метод действия по ячейке. Я могу опубликовать код примера, если вам действительно нужно. – vaibhav

+0

Вы имеете в виду кнопку над всеми компонентами и прозрачную? – birdcage

0

Проверьте свой метод делегирования. Автозаполнение иногда может быть смешным и вставить didDeselectRowAtIndexPath вместо didSelectRowAtIndexPath

+0

Его didSelectRowAtIndexPath, я дважды проверял. – birdcage

+0

Я бы порекомендовал вас вместо этого использовать UIAlertController. UIAlertView устарел. В любом случае ... вы реализовали - (void) alertView: (UIAlertView *) alertView clickedButtonAtIndex: (NSInteger) buttonIndex в вашем контроллере просмотра? –

+0

Речь не идет о UIAlertView, это просто для того, чтобы показать вам. Мой основной код также не работает. – birdcage

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