【问题标题】:How to have accessible swipe action for iCarousel如何为 iCarousel 设置可访问的滑动操作
【发布时间】:2018-01-20 11:40:51
【问题描述】:
【问题讨论】:
标签:
ios
swift
voiceover
icarousel
uiaccessibility
【解决方案1】:
您可以覆盖和实现accessibilityScroll(_:)
方法为:
extension iCarousel {
override open func accessibilityScroll(_ direction: UIAccessibilityScrollDirection) -> Bool {
super.accessibilityScroll(direction)
if direction == UIAccessibilityScrollDirection.left {
self.scroll(byOffset: 1, duration: 1.0)
}
if direction == UIAccessibilityScrollDirection.right {
self.scroll(byOffset: -1, duration: 1.0)
}
return true
}
}
并在 iCarousel 委托方法 carouselDidEndScrollingAnimation 中发布一个愿望(例如页码),您还可以在此处更改accessibilityLabel 和其他与可访问性相关的值。
func carouselDidEndScrollingAnimation(_ carousel: iCarousel) {
self.carousel.accessibilityLabel = accLabels[currentItemIndex]
self.carousel.accessibilityValue = accValues[currentItemIndex]
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification,
"item \(currentItemIndex + 1) of \(self.items.count)")
}
同样在 viewDidLoad 中设置初始的accessibilityLabel 以及:
self.carousel.accessibilityTraits = UIAccessibilityTraitUpdatesFrequently
我希望这对某人有所帮助。