iOS在什么情况下调用-accessibilityScroll:?
我在表视图中实现了所有可访问性操作方法,并添加了“可调整”特性。我使用UITableView定制控件,通过滚动选择一个项目。它没有要选择的典型行。它用于滚动,标记显示所选内容。类似于UIPickerView或Weightbot中的选择器。选择事件日期是一项自定义操作 但iOS从不调用我的可访问性操作方法。在“表视图”画外音中向上或向下轻弹不会做出正确反应。它疯狂地跳来跳去 我必须为画外音设置代理或数据源吗?当用户像在UIPickerView中那样向上/向下轻弹时,如何使其正确地向上/向下滚动我的表视图 这将有助于理解苹果是如何通过画外音让UIDatePicker访问的。它对每个列使用UITableView。可以在列之间拖动以选择列。然后,您可以向上或向下轻弹以增加或减少 编辑:递归转储有关UIDatePicker的信息,以查看其设置方式iOS在什么情况下调用-accessibilityScroll:?,ios,uitableview,accessibility,uipickerview,voiceover,Ios,Uitableview,Accessibility,Uipickerview,Voiceover,我在表视图中实现了所有可访问性操作方法,并添加了“可调整”特性。我使用UITableView定制控件,通过滚动选择一个项目。它没有要选择的典型行。它用于滚动,标记显示所选内容。类似于UIPickerView或Weightbot中的选择器。选择事件日期是一项自定义操作 但iOS从不调用我的可访问性操作方法。在“表视图”画外音中向上或向下轻弹不会做出正确反应。它疯狂地跳来跳去 我必须为画外音设置代理或数据源吗?当用户像在UIPickerView中那样向上/向下轻弹时,如何使其正确地向上/向下滚动我的
UIDatePicker:
_UIDatePickerView:
UIView:
_UIOnePartImageView:
_UIPickerWheelView:
_UIPickerViewSelectionBar:
UIPickerTableView:; contentOffset: {0, 2.19991e+06}>
UIPickerTableViewWrapperCell:
UITableViewCellContentView:
UIDatePickerWeekMonthDayView:
UILabel: {label = 28. Jul} {traits = staticText } {accessibilityIncrement} {accessibilityDecrement} {accessibilityScroll:} {accessibilityPerformEscape} {accessibilityPerformMagicTap}
设置/实现时,它会打印所有可用的可访问性相关内容。正如您所看到的,奇怪的是,表格视图单元格的UILabel实现了scroll方法。这对我来说没有意义。为什么会这样?为什么不是UIPickerTableView本身?而且在整个UIDatePicker中也没有可调整的特性
这是我用来转储此信息的代码。我最初在UIDatePicker上调用它,经过2秒的延迟,只是为了确定。我将此代码放在UIView的类别中
- (NSString *)description {
NSString *className = NSStringFromClass([self class]);
NSMutableString *str = [NSMutableString stringWithFormat:@"%@: ", className];
if (self.isAccessibilityElement) {
if (self.accessibilityLabel) {
[str appendFormat:@"{label = %@} ", self.accessibilityLabel];
}
UIAccessibilityTraits traits = self.accessibilityTraits;
[str appendString:@"{traits = "];
if (traits & UIAccessibilityTraitAdjustable) {
[str appendString:@"adjustable "];
}
if (traits & UIAccessibilityTraitAllowsDirectInteraction) {
[str appendString:@"interaction "];
}
if (traits & UIAccessibilityTraitButton) {
[str appendString:@"button "];
}
if (traits & UIAccessibilityTraitCausesPageTurn) {
[str appendString:@"pageTurn "];
}
if (traits & UIAccessibilityTraitHeader) {
[str appendString:@"header "];
}
if (traits & UIAccessibilityTraitImage) {
[str appendString:@"image "];
}
if (traits & UIAccessibilityTraitKeyboardKey) {
[str appendString:@"kbKey "];
}
if (traits & UIAccessibilityTraitLink) {
[str appendString:@"link "];
}
if (traits & UIAccessibilityTraitNone) {
[str appendString:@"none "];
}
if (traits & UIAccessibilityTraitNotEnabled) {
[str appendString:@"notEnabled "];
}
if (traits & UIAccessibilityTraitPlaysSound) {
[str appendString:@"sound "];
}
if (traits & UIAccessibilityTraitSearchField) {
[str appendString:@"search "];
}
if (traits & UIAccessibilityTraitSelected) {
[str appendString:@"selected "];
}
if (traits & UIAccessibilityTraitStaticText) {
[str appendString:@"staticText "];
}
if (traits & UIAccessibilityTraitSummaryElement) {
[str appendString:@"summaryElement "];
}
if (traits & UIAccessibilityTraitUpdatesFrequently) {
[str appendString:@"updatesFreq "];
}
[str appendString:@"} "];
if ([self respondsToSelector:@selector(accessibilityIncrement)]) {
[str appendString:@"{accessibilityIncrement} "];
}
if ([self respondsToSelector:@selector(accessibilityDecrement)]) {
[str appendString:@"{accessibilityDecrement} "];
}
if ([self respondsToSelector:@selector(accessibilityScroll:)]) {
[str appendString:@"{accessibilityScroll:} "];
}
if ([self respondsToSelector:@selector(accessibilityPerformEscape)]) {
[str appendString:@"{accessibilityPerformEscape} "];
}
if ([self respondsToSelector:@selector(accessibilityPerformMagicTap)]) {
[str appendString:@"{accessibilityPerformMagicTap} "];
}
}
return str;
}
当用户用三个手指刷卡时?不可能。三个手指在“表格视图”上向上向下滚动会产生相同的结果。画外音延迟1-5秒,以随机方式突出显示下一行或前一行,并读取标签。即使表格视图单元格被设置为不可访问。还尝试在表视图和/或父视图上分组属性,但没有成功。所选的辅助功能元素是什么,在哪里实现了scroll方法?scroll方法在UITableView子类中实现。日期选择器中每列一个子类。共有3列。self.accessibilityTraits |=UIAccessibilityTraitAdjustable在每个表视图中设置。UITableViewCell子类设置为不可访问。但也尝试在UITableViewCell中实现操作方法,但没有成功。在internet上找不到使此类自定义控件可访问的示例。为什么使用accessibilityScroll而不是递增和递减?