为了在VoiceOver打开时调用accessibilityIncrement / accessibilityDecrement,我需要做些什么特别的事情吗?

时间:2012-06-06 13:10:29

标签: ios accessibility

我确定我正在构建的应用程序是可访问的,并且大部分都可以享受它。但是,我试图让accessibilityIncrement / accessibilityDecrement无效。

我有一个UIView的子类,我要覆盖accessibleTraits才能返回[super accessibleTraits] | UIAccessibilityTraitAdjustable;并且我已经实施了

在所有其他方面,当VoiceOver开启时,视图响应良好,但UIAccessibilityAction上的唯一方法我似乎可以使用3手指向上/向下滑动accessibleScroll。< / p>

还有其他人遇到过这个吗?我错过了什么?

1 个答案:

答案 0 :(得分:1)

您的描述看起来是正确的:您需要做的就是设置UIAccessibilityTraitAdjustable,然后实施accessibilityIncrementaccessibilityDecrement。通常的技巧是Apple的文档暗示你在视图控制器上执行此操作 - 不是你应该在视图本身上实现它们。

这反过来意味着您需要一个委托协议或一些其他回调机制与您的视图控制器将更改传达给您的模型(以及您的视图的其他部分)。 这样:“

@interface MyAdjustableView : UIView

@end


@implementation MyAdjustableView

- (UIAccessibilityTraits)accessibilityTraits; {
    return [super accessibilityTraits] |  UIAccessibilityTraitAdjustable;

}

- (void)accessibilityIncrement {
    NSLog(@"increment");
}

- (void)accessibilityDecrement {
    NSLog(@"decrement");

}

@end

应该有效。委托样板作为练习。