Найти тему

iOS Swift UITableViewCell: Что делать, если не нажимается кнопка внутри кастомной ячейки?

Оглавление
UITableViewCell
UITableViewCell

Баг

После обновления на iOS 14 в приложении появился баг: кнопка, находящаяся внутри кастомной ячейки таблицы перестала реагировать на нажатие. Кнопка отображается, но не нажимается.

Решение

Добалять контент необходимо внутрь contentView кастомной ячейки

Детали

Получается, что контент кастомной ячейки tableView отображается под contentView. И так как contentView прозрачный, кнопку видно, но нажать не получается

  • Работало до iOS 14:

customCell.addSubview(button)

  • После iOS 14 нужно:

customCell.contentView.addSubview(button)

Описание contentView из оф документации:

Представление содержимого (contentView) объекта UITableViewCell по умолчанию это родительское представление для содержимого, которое отображается в ячейке. Если вы хотите изменить ячейку простым добавлением дополнительных представлений, вам следует добавлять их в представление содержимого (contentView); таким образом они будут распологаться соответсвующим образом при переходе ячейки в режим редактирования и выходе из него.