UITableView не реагирует на прокрутку и касается - PullRequest
4 голосов
/ 01 марта 2011

Я создал пользовательский UIView, и внутри этого UIView я добавляю UITableView следующим образом:

    treeView = [[UITableView alloc] initWithFrame:CGRectMake(0, 80, slider.frame.size.width, slider.frame.size.height - 80)];
    [treeView setDelegate:self];
    [treeView setDataSource:self];
    [self addSubview:treeView];
    [treeView release];

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

Я также реализую эти методы делегата / источника данных:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

Кто-нибудь знает, почему это так?

Спасибо

Ответы [ 4 ]

21 голосов
/ 01 марта 2011

Существует несколько возможностей:

  • В вашем пользовательском представлении или одном из его суперпредставлений userInteractionEnabled установлено значение NO.
  • Существует еще одно представление поверх вашего пользовательскогоили поверх табличного представления в пользовательском представлении.
  • Пользовательское представление, в котором находится табличное представление, меньше, чем табличное представление (с clipsToBounds = NO, подпредставление, которое выходит за пределы егородитель может быть замечен, но обычно не взаимодействует с ним).Или то же самое для другого представления в стеке.
  • Пользовательское представление (или одно из его суперпредставлений) неправильно переопределяет pointInside:withEvent: или hitTest:withEvent:.
0 голосов
/ 03 ноября 2015

Для меня причина, по которой мой TabView не отвечает, из-за анимации преобразования. Я анимировал свой просмотр таблицы, используя view.layer.transform = CATransform3DMakeScale(0.5,0.5,0); который является свойством 3D-преобразования. Я обнаружил, что с помощью двумерного преобразования вместо toVC.view.layer.affineTransform = CGAffineTransformMakeScale(0.5, 0.5); Тогда мой вид таблицы начинает реагировать на мои прикосновения и прокрутки. Я не уверен точно, что является основной причиной, но это мое наблюдение.

0 голосов
/ 14 сентября 2013

Вот еще одна причина, почему это может произойти ...

UITableView является дочерним элементом другого представления, где кадр меньше, чем табличное представление. Кажется, это не имеет особого смысла, но это может случиться! У меня был чемоданчик, родитель таблицы имел ширину = 0.

Что, конечно, вызвало pointInside: withEvent: или hitTest: withEvent: вернуть NO!

0 голосов
/ 01 марта 2011

Убедитесь, что userInteractionEnabled имеет значение YES для представлений, которые должны получать сенсорные события.Также попробуйте вызватьcomeFirstResponder для представления и вызвать resignFirstResponder, когда вы закончите.Извините, у меня нет более подробной информации, но прошло много времени с тех пор, как я это сделал.Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...