我有一个分页UICollectionView
,允许用户水平滑动集合视图单元格。它有两个页面,但有时我想禁用它,以便用户无法浏览第一页。
我目前正在numberOfPages
上将页面控件1
设置为scrollEnabled = false
和collectionView
,这确实会阻止用户从三指滑动转到其他页面,但它不会阻止使用其他方法访问该页面。如果他们点击集合视图后面的按钮,则他们向左滑动以转到上一个元素,它会聚焦于集合视图第二页上的最后一个单元格。
然后我尝试设置pagingEnabled = false
,但是如果用户突出显示第一行中的最后一个单元格然后向右滑动,那么它将滚动以便您可以看到第一页的一半和第二页的一半页面,它突出显示第二页的第一个字符。
如何阻止VoiceOver导航到集合视图的第二页?
答案 0 :(得分:1)
@joey
这对我有用:
解决方案是从NO
accessibilityScroll
- (BOOL)accessibilityScroll:(UIAccessibilityScrollDirection)direction
{
return NO;
}
现在你的tableview应该在禁用时停止滚动
答案 1 :(得分:0)
我无法找到阻止VoiceOver导航到其他页面的解决方案,但我能够解决问题的原因,这是一个更好的解决方案。
在collectionView:numberOfItemsInSection:
中检查是否应该只有一个页面,如果是,则运行算法来计算应在该单页中显示的最大单元格数,然后对该数字执行原始计算单元格,最后返回这两个值的min
。这将确保只创建可见的单元格,因此不会有额外的页面,这也将提高性能。