UIAccessibility.convertToScreenCoordinates () всегда возвращает CGRect (0,0,0,0) - PullRequest
0 голосов
/ 15 марта 2019

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

let rect2 = CGRect(x: 25, y: 21, width: 200, height: 44)
let newRect = UIAccessibility.convertToScreenCoordinates(rect2, in: self) 

где self - это пользовательский UIView ()
отладка, я вижу, что newRect = CGRect (0,0,0,0)

следовательно

button.accessibilityFrame = newRect // Does not work as intended as VoiceOver frame is now size 0,0 and origin 0,0

1 Ответ

1 голос
/ 18 марта 2019

У меня была такая же проблема.Оказывается, я настраивал свойство accessibilityFrame до того, как было размещено представление.Я исправляю это, изменяя этот код на метод layoutSubviews моего пользовательского представления.

override func layoutSubviews() {
    super.layoutSubviews()

    let rect2 = CGRect(x: 25, y: 21, width: 200, height: 44)
    let newRect = UIAccessibility.convertToScreenCoordinates(rect2, in: self)
    button.accessibilityFrame = newRect
    }
...