繁体   English   中英

如何正确设置UIAccessibilityElement的accessibilityFrame?

[英]How to correctly set accessibilityFrame of UIAccessibilityElement?

我观看了有关可访问性的WWDC会议,并做了苹果公司的建议:

// Convert frame to window coordinates
frame = [view convertRect:frame toView:[appDelegate window]];

// Convert frame to "screen" coordinates
frame = [w convertRect:frame toWindow:nil];

DLog(@"accessibilityFrame = %@", NSStringFromCGRect(frame));

// Set accessibility frame
element.accessibilityFrame = frame;

我的可访问性容器对象是在视图控制器的-viewDidLoad中创建的。 然后,它为地图图像上的项目创建UIAccessibilityElement对象。

问题:

延迟一段时间后调用代码时,一切正常。 正确的accessibilityFrame如下所示:

{{0, 184}, {44, 200}}

当我在可访问性容器视图的-initWithFrame:中调用以上代码时,-convertRect:toWindow:将所有值除以2。帧变得更小且错误。 错误的accessibilityFrame看起来像这样:

{{0, 220}, {22, 100}}

似乎-convertRect:toWindow:方法有一个错误,当在-applicationDidFinishLaunching之后调用得太快时,该错误使它无法正常工作...是否有解决方法可以安全地将其转换为正确的屏幕坐标?

您是否尝试过使用UIAccessibilityConvertFrameToScreenCoordinates 此函数采用CGRectUIView ,并将rect从UIView's坐标空间转换为UIScreen坐标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM