#ios #uitableview #uibutton
#iOS #uitableview #uibutton
Вопрос:
после обновления Xcode до версии 12 каждый UIButton, добавленный в UITableViewCell, выглядит следующим образом:
self.addSubview(someButton)
в симуляторе (версия iOS 14) кнопка не работает (когда пользователь нажимает на кнопку, ничего не происходит), но на реальном устройстве все работает нормально. когда я добавил UIButton в ячейку, подобную этой, все работает нормально даже в симуляторе:
self.contentView.addSubview(receptionButton)
почему это происходит? и правильно ли я поступаю, добавляя UIButton таким образом (self.contentView.addSubview) в UITableViewCell?
Ответ №1:
и правильно ли я поступаю, добавляя UIButton таким образом (self.contentView.addSubview) в UITableViewCell?
ДА.
Это самый правильный способ! Вы можете добавлять свои подвиды в self
(саму ячейку) напрямую, как в вашем первом блоке кода, НО в будущем вы на 100% столкнетесь с ошибкой (я так и сделал), как то, что вы только что испытали.
почему это происходит?
Это лучшее объяснение, которое я смог найти у Apple:
The content view of a UITableViewCell object is the default superview for content that the cell displays. If you want to customize cells by simply adding additional views, you should add them to the content view so they position appropriately as the cell transitions in to and out of editing mode.
https://developer.apple.com/documentation/uikit/uitableviewcell/1623229-contentview