![](/img/trans.png)
[英]How to control which UIAccessibilityElement receives focus after posting screen change notification?
[英]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
? 此函数采用CGRect
和UIView
,并将rect从UIView's
坐标空间转换为UIScreen
坐标。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.