Как предотвратить ячейку табличного представления, регистрирующую касание, когда кнопка наложена сверху на табличное представление? - PullRequest
0 голосов
/ 14 апреля 2019

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

Верхняя часть кнопки проходит над верхним краем панели вкладок, располагаясь в верхней части таблицы.Вот снимок экрана.

enter image description here

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

Как это можно предотвратить?

1 Ответ

1 голос
/ 14 апреля 2019

Если рамка представлений выходит за пределы рамки суперпредставления, вы не получите никаких событий касаний, превышающих рамку суперпредставления. Это то, что происходит здесь, так как большая кнопка, вероятно, является подпредставлением TabBar. Чтобы разрешить эту кнопку добавления как подпредставление представления TabBarControllers, а не TabBar и установить соответствующие ограничения.

Альтернативным решением будет создание выделенного подкласса UIButton для этой большой кнопки и переопределение метода hitTest(point:event:).

Для справки: Захватывает прикосновения вне рамок своего суперпредставления с помощью hitTest: withEvent:

...