iOS:辅助功能:UICollectionView:UICollectionElementKindSectionHeader在单元格后读出

时间:2016-04-21 17:49:05

标签: ios objective-c uicollectionview accessibility

我有一个UICollection视图,它有一个像这样返回的Header视图:

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView
           viewForSupplementaryElementOfKind:(NSString *)kind
                                 atIndexPath:(NSIndexPath *)indexPath {
    MyView *myView = [collectionView dequeueReusableSupplementaryViewOfKind:kind
        withReuseIdentifier:@"someIdentifier"
        forIndexPath:indexPath];

    // Set various parameters on the view.
    return myView;
}

然后我明显从cellForItemAtIndexPath返回了一堆Cells。

在辅助功能模式下,当i 2手指向上滑动时,它会读取Lader View LAST,而不是First。我需要先阅读它。我查看了accessibilityPoint和accessibilityFrame,两者都是正确的。标题的焦点可访问性框架肯定在单元格之上。

那么为什么在辅助功能模式下最后读取标题视图呢?

实施例: enter image description here

2 个答案:

答案 0 :(得分:0)

所以这对我来说似乎是一个iOS错误,因为在读取单元格之前,显然应首先通过VoiceOver读取标题。

我已经解决了这个问题,因为第0节只返回标题和0行。然后让下一节(1)返回NO标题,只返回行。现在,VoiceOver以正确的顺序读取所有内容。对于用户来说,它看起来是一样的,因为他们不能告诉标题是没有行的空白部分。

答案 1 :(得分:0)

解决方案是将集合视图的shouldGroupAccessibilityChildren属性设置为true。

E.g。

.off-canvas-wrapper {
overflow: hidden;}