Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS在什么情况下调用-accessibilityScroll:?_Ios_Uitableview_Accessibility_Uipickerview_Voiceover - Fatal编程技术网

iOS在什么情况下调用-accessibilityScroll:?

iOS在什么情况下调用-accessibilityScroll:?,ios,uitableview,accessibility,uipickerview,voiceover,Ios,Uitableview,Accessibility,Uipickerview,Voiceover,我在表视图中实现了所有可访问性操作方法,并添加了“可调整”特性。我使用UITableView定制控件,通过滚动选择一个项目。它没有要选择的典型行。它用于滚动,标记显示所选内容。类似于UIPickerView或Weightbot中的选择器。选择事件日期是一项自定义操作 但iOS从不调用我的可访问性操作方法。在“表视图”画外音中向上或向下轻弹不会做出正确反应。它疯狂地跳来跳去 我必须为画外音设置代理或数据源吗?当用户像在UIPickerView中那样向上/向下轻弹时,如何使其正确地向上/向下滚动我的

我在表视图中实现了所有可访问性操作方法,并添加了“可调整”特性。我使用UITableView定制控件,通过滚动选择一个项目。它没有要选择的典型行。它用于滚动,标记显示所选内容。类似于UIPickerView或Weightbot中的选择器。选择事件日期是一项自定义操作

但iOS从不调用我的可访问性操作方法。在“表视图”画外音中向上或向下轻弹不会做出正确反应。它疯狂地跳来跳去

我必须为画外音设置代理或数据源吗?当用户像在UIPickerView中那样向上/向下轻弹时,如何使其正确地向上/向下滚动我的表视图

这将有助于理解苹果是如何通过画外音让UIDatePicker访问的。它对每个列使用UITableView。可以在列之间拖动以选择列。然后,您可以向上或向下轻弹以增加或减少

编辑:递归转储有关UIDatePicker的信息,以查看其设置方式

 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而不是递增和递减?