0

我有一個分頁UICollectionView,它允許用戶水平滑動收集視圖單元格。它確實有兩頁,但有時我想禁用它,以便用戶無法瀏覽第一頁。阻止VoiceOver瀏覽UICollectionView的其他頁面

我目前設置頁面控件的numberOfPagescollectionView1scrollEnabled = false,這不停止從三指掃去其他頁面的用戶,但它並不能阻止訪問使用其他方法頁。如果他們點擊集合視圖後面的按鈕,則他們向左滑動以轉到上一個元素,它將重點關注集合視圖第二頁上的最後一個單元格。

我又試圖還設置pagingEnabled = false,但隨後如果用戶突出顯示第一行中的最後一個單元格,然後揮筆正確的,那麼它就會滾動,這樣你可以看到一半的第二頁的第一頁的一半,它突出了第二頁的第一個字符。

如何防止VoiceOver導航到集合視圖的第二頁?

回答

0

我無法找到防止VoiceOver導航到其他頁面的解決方案,但我能夠解決問題的原因,這是一個更好的解決方案。

collectionView:numberOfItemsInSection:檢查是否應該只有一個頁面,如果是,則運行一個算法來計算單個頁面中應顯示的最大單元數,然後對單元格數執行原始計算,最後返回這兩個值的min。這將確保只有可見的單元格被創建,因此不會有額外的頁面,這也會提高性能。

1

@joey

這爲我工作:

的解決方案是從accessibilityScroll

- (BOOL)accessibilityScroll:(UIAccessibilityScrollDirection)direction 
{ 
    return NO; 
} 

返回NO現在你的tableview應該停止滾動禁用

相關問題