重新加载iOS时,辅助功能集合视图焦点会发生变化

时间:2016-02-17 16:36:44

标签: ios uicollectionview accessibility

我正在研究日历的可访问性,这实际上是一个collectionView。每当点击一个单元格时,都会通过调用

来重新加载collectionView
[self.collectionView reloadData];

问题是如果voiceOver正在运行,则在点击单元格后焦点将移动到另一个位置,因为该单元格会在其他位置重复使用。

无论如何都要将焦点保持在reloadData之后的位置?谢谢!

2 个答案:

答案 0 :(得分:2)

找到解决方法。焦点发生了变化,因为聚焦单元在执行[colleciontView reloadData]时会在其他地方重复使用。

因此,如果我们逐个重新加载collectionViewCells,则不会在其他任何地方使用该聚焦单元格。我在VoiceOver运行时调用此方法重新加载collectionView。

- (void)reloadCalendarCollectionView {

  NSInteger items = [self.calendarItems count];

  for (NSInteger i = 0; i < items; i++) {
    [self.collectionView reloadItemsAtIndexPaths:@[[NSIndexPath indexPathForItem:i inSection:1] ]];
  }

}

答案 1 :(得分:0)

您可以在重新加载数据之前尝试执行<Button bsStyle="success" bsSize="small" onClick={someCallback; someOtherCallback;}> Something </Button> 。然后,当它完成时,你将不得不做反向&amp;然后发布您正在寻找的单元格的通知。