问题描述
我有一个带有UIPageControl的UIScrollView,该页面有2页,当画外音开始读取时,它似乎也读取了第二页的元素。我猜是因为加载了这些元素,所以它不知道它们是不可见的。
作为一种解决方案,我尝试为未显示的第二页手动设置accessibilityElementsHidden
,但这不起作用,这是因为它即使在更改页面后也永远不会读取第二页元素。
@IBOutlet private var scrollView: UIScrollView!
@IBOutlet private var pageControl: UIPageControl!
// child page view's get added to this array when page initialised
private var childPageViews = [UIView]()
override func viewDidLoad() {
super.viewDidLoad()
updateChildPageViewsAccessibilityHidden(currentPageIndex: pageControl.currentPage)
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
pageControl.currentPage = scrollView.currentPage()
updateChildPageViewsAccessibilityHidden(currentPageIndex: pageControl.currentPage)
}
private func updateChildPageViewsAccessibilityHidden(currentPageIndex: Int) {
childPageViews.forEach {
guard let pageIndex = views.firstIndex(of: $0) else { return }
let isPageHidden = currentPageIndex != pageIndex
$0.accessibilityElementsHidden = isPageHidden
}
}
我明显缺少什么吗?还是有人可以提供修复建议?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)