Итак, вопрос: у вас есть кнопка, которая выходит за пределы своего суперпредставления и поэтому не может быть нажата? Да, вы можете сделать деталь вне суперпредставления кликабельной; вам нужно выполнить «проверку на попадание», переопределив hitTest(_:with:)
, чтобы кнопка могла быть представлением проверки на попадание, даже если ее часть находится вне суперпредставления. Вам потребуется этот код (или аналогичный) в суперпредставлении кнопки:
override func hitTest(_ point: CGPoint, with e: UIEvent?) -> UIView? {
if let result = super.hitTest(point, with:e) {
return result
}
for sub in self.subviews.reversed() {
let pt = self.convert(point, to:sub)
if let result = sub.hitTest(pt, with:e) {
return result
}
}
return nil
}