2013-07-16 2 views
1

У меня есть некоторые проблемы с использованием UITableView на UIView, который имеет UITapGestureRecognizer. Если я нажму на UITableViewCell, фон не изменится на выбранный (потому что не получено никакого касания).UITableView на UIView с UITapGestureRecognizer (выбор ячейки не работает)

Я был в предположении, что если вы добавите childview в родительское представление, childview сможет обрабатывать прикосновение и что все будет работать. Однако это не так. Если я нажимаю на UITableviewCell, кран обрабатывается этим родительским представлением, и ячейка не выбрана.

Я уже пытался подкласс "UITapGestureRecognizer" игнорировать события прикосновения от UITableViewCell: (MonoTouch код)

public override bool ShouldReceiveTouch (UIGestureRecognizer recognizer, UITouch touch) 
     { 
      if (touch.View.GetType() == typeof(UITableViewCell)) 
       return false; 
      return true; 
     } 

Это не работает из-за I нажмите на ячейку, «touch.View.GetType() "возвращает" UIView "и игнорируется.

Любая идея, как я могу заставить свой рабочий стол работать с UIView с помощью UITapGestureRecognizer?

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

Благодаря Matt

+0

Вы хотите изменить выбранную ячейку Изменение фона во время u коснитесь его ..? –

+0

Да, но я знаю, как изменить фон для выбранной ячейки. Проблема в том, что когда я добавляю свою таблицу в представление с помощью UITapGestureRecognizer, ячейка не будет «выбрана», потому что кран обрабатывается родительским окном – Matt

ответ

5

При создании UITapGestureRecogizer установить свойство setCancelsTouchesInView в NO. Это должно позволить вашему UITableViewCell получить прикосновение.

+0

Wauw, просто посмотрел «setCancelsTouchesInView», и я до сих пор не знаю, что именно но это действительно решает мою проблему. Быстро и легко :-) Спасибо! – Matt

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