没有获得UIAccessibilityElement的正确坐标

时间:2018-05-09 17:57:26

标签: ios swift uiaccessibility

我试图用我的标签对我的按钮进行分组,但是没有在正确的位置获取可访问性的矩形。

在完全滑动到达元素之后,它需要正确的宽度和高度,但是y位置是完全错误的。它说的是正确的VO,但我不知道为什么位置不正确。我有以下代码,

let checkboxAccessible = UIAccessibilityElement(accessibilityContainer: view)
let unionRect = passwordCheckbox.frame.union(showPasswordText.frame)
checkboxAccessible.accessibilityFrame = UIAccessibilityConvertFrameToScreenCoordinates(unionRect, self.view)
checkboxAccessible.accessibilityLabel = NSLocalizedString("Show Password", comment: "showPasswordText")
view.accessibilityElements = [productTitle, leadInText, emailTextField, passwordTextField, checkboxAccessible, loginButton, forgotPasswordView, helpButton]

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

调试后我发现了我犯的错误。所有上述变化都在ViewDidLoad中,到那时我们没有得到正确的框架。

所以我在viewDidLayoutSubviews中进行了这些更改,现在获得了正确的帧。

答案 1 :(得分:0)

我遇到一个同样的问题,我有一个 <% for (bug of bugs) { %> <ion-card> <ion-card-header> <ion-card-title><%= bug.comments %></ion-card-title> </ion-card-header> <ion-card-content> </ion-card-content> </ion-card> <% } %>,其中有两个StackView(假设 title value )。而且我已经奋斗了几个月,无法弄清楚为什么我的容器找不到框架的正确位置(IBOutlets

最近,当我回来尝试解决此问题时,我看到Apple documenation他们正在使用self.frame函数。我以我的情况进行了尝试,效果很好!

工作分组元素的示例

union()