Похоже, что структура доступности использует UIView.point(inside:_, with:_)
, чтобы определить, является ли представление доступным через VoiceOver.
Я решил эту проблему, переопределив эту функцию в суперпредставлении и вернув true
когда точка находится за пределами суперпредставления, но внутри границ подпредставления.
В этом конкретном случае у моего суперпредставления есть фоновое представление, которое рисуется за пределами суперпредставления, и представление, которое я хотел быть доступным для VoiceOver.находится внутри границ этого фонового представления.Итак, у меня есть:
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
return background.frame.contains(point)
}
Отрегулируйте в соответствии с вашим сценарием.