Wenn Sie iOS 9 und neuere sind unterstützt, ist dieses Verhalten jetzt der Standard - keine spezielle Handhabung erforderlich.
Wenn Sie unterstützt iOS 8 und niedriger, Unterklasse UIPageControl
und außer Kraft setzen accessibilityIncrement
und accessibilityDecrement
. Sie müssen die Eigenschaft accessibilityTraits
nicht überschreiben, um anzuzeigen, dass sie einstellbar ist - UIPageControl
ist standardmäßig einstellbar.
import UIKit
class AccessibleUIPageControl: UIPageControl {
override func accessibilityIncrement() {
self.currentPage += 1
self.sendActionsForControlEvents(.ValueChanged)
}
override func accessibilityDecrement() {
self.currentPage -= 1
self.sendActionsForControlEvents(.ValueChanged)
}
}
Dann in Ihrem View-Controller können Sie für Value hören und entsprechend darauf zu reagieren, den Inhalt für die neue Seite zu zeigen:
//viewDidLoad:
self.pageControl.addTarget(self, action: "didChangePage", forControlEvents: .ValueChanged)
func didChangePage() {
let contentOffset: CGFloat = collectionView.frame.size.width * CGFloat(pageControl.currentPage)
collectionView.setContentOffset(CGPointMake(contentOffset, 0), animated: false)
}
Beachten Sie, dass, wenn Sie eine Unterklasse nicht UIPageControl
dieses Ziel/Aktion immer noch angerufen werden, aber die aktuelle Seite Punktanzeige wird nicht aktualisiert.
Machst du das in InterfaceBuilder oder programmatisch? Es klingt, als ob es die Eigenschaft fehlt [UIAccessibilityTraitAdjustible] (http://developer.apple.com/library/ios/#documentation/uikit/reference/UIAccessibilityAction_Protocol/Introduction/Introduction.html) - verwenden Sie die Seitensteuerung direkt oder innerhalb eine andere Ansicht, die weiß, wie man es verwaltet?) –