在我的应用程序中,我有一些控件是UIView
的子视图,但是它们的框架不在超级视图范围之内。他们对可见的用户可见,因为clipsToBounds
是false
。对于VoiceOver用户,他们可以突出显示其超级视图范围内的控件,然后向右轻扫以突出显示超出范围的下一个控件。如预期的那样。但是,如果它们取而代之在屏幕上平移并平移,则VoiceOver永远不会突出显示其超视范围之外的元素。我如何确保在平移时可以访问这些元素?
我创建了一个遇到此问题的示例项目。这里有两个按钮作为子视图添加到灰色的UIView
中。按钮0位于其概览的范围内,按钮1位于外部。平移时可以访问按钮0,而不能平移按钮1。
答案 0 :(得分:0)
似乎可访问性框架使用alarm_name = "${element(split(",", join(",", aws_instance.web.*.id)), count.index)}-cpu-util"
alarm_name = "${element(split(",", join(",", aws_instance.web.*.id)), count.index)}-status-check"
来确定是否可以通过VoiceOver访问视图。
我已经解决了这个问题,方法是在超级视图上重写此函数,并在该点超出超级视图范围但在子视图范围之内时返回UIView.point(inside:_, with:_)
。
在这种特殊情况下,我的超级视图具有一个在超级视图范围之外绘制的背景视图,而我希望VoiceOver可以访问的视图位于该背景视图的范围之内。所以我有:
true
根据情况进行适当调整。