2016-11-30 8 views
4

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

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

enter image description here

Второе странное поведение я наткнулся на то, что я не могу непосредственно коснуться клетки. Мне нужен какой-то жестом салфетки, чтобы вызвать код при выборе ячейки.

enter image description here

Если я иду на мой взгляд коллекции на моей раскадровки и выберите Задержки Содержимое штрихи и Cancellable Содержимое прикасается в разделе Scrollview, вид сбора прокручивается только штраф, но если я кладу палец/курсор над ячейкой с включенной опцией. Я больше не могу обращаться к ячейкам.

enter image description here

Это совершенно сбивает с толку меня.

и спасибо, что прочитал/рассматривая эту тему.

+0

Что подвиды вы имеете на вашей коллекции вид ячейки? – Frankie

+0

1 Изображение, 1 покрышка и 1 [как и] (https://photos.google.com/share/AF1QipOkIALy0nYjoOSQOBno0DyeYVXIyKPSTX_hcQ2jVuKMCVb-xzi8tOY6FeX21K_RXg?key=cksxVWhRMzBnekp3R0hwMmNrWWxKZGVHeU9KN2lB) –

+0

простой способ решить эту проблему. Создайте пример приложения. Заблокируйте файл. Загрузите его в github, и давайте проверим его –

ответ

3

Давайте посмотрим, что вы делаете.

delaysContentTouches: Если значение этого свойства истинно, вид прокрутки задерживает обработку жестов касания до тех пор, пока он не сможет определить, является ли прокрутка намерением. Если значение ложно, прокрутка сразу вызывает вызовы touchshouldBegin (_: with: in :). Значение по умолчанию верно.

canCancelContentTouches: Если значение этого свойства истинно, и вид в содержимом начал отслеживать касание пальцем пальца, и если пользователь перетаскивает палец достаточно, чтобы инициировать свиток, вид получает касаниеCancelled (_: with :), а прокрутка позволяет обрабатывать прикосновение как свиток. Если значение этого свойства ложно, прокрутка не прокручивается независимо от движения пальца после начала просмотра содержимого.

Во-первых, вы устанавливаете задержекContentTouches на false. Таким образом, scrollview сразу же вызывает методы обработки касания содержимого, позволяя ему справляться с прикосновением. Очевидно, что прокрутка не начнет прокручиваться прямо из-за этого, даже если вы перетащите.

Во-вторых, вы также можете установить canCancelContentTouches на false. Но если просмотр прокрутки не позволяет «захватывать», что контент уже обрабатывает (отменив их), он никогда не сможет начать прокрутку позже. Поэтому, если ваше касание попадает на просмотр содержимого, нет возможности для прокрутки, чтобы начать прокрутку: ему не разрешено прокручивать сразу, потому что не разрешено задерживать контентные касания, и он не может начать прокрутку позже, потому что он не может отменить содержание.

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

0

я была такая же проблема при прикосновении к ячейке, проблема заключалась в том, что я использую более одного UIGesture без добавления «.cancelsTouchesInView = ложь» для каждого одного

так, если вы используете UIGesture просто добавить Your_Gesture.cancelsTouchesInView = false

, и вы должны быть в состоянии получить доступ к клеткам