Gin*_*nny 12 iphone accessibility uitableview voiceover
我有一个UITableView,只要用户向其添加另一个元素/表格单元格,我就会滚动到底部.对于屏幕,这可以正常工作,因为用户可以看到他们刚刚在表格底部添加的单元格.但是当使用VoiceOver运行我的应用程序时,第一个聚焦和读取的UITableCell是屏幕上可见的顶部单元格.
我想设置它,以便聚焦然后在UITableView出现时立即读取的单元格是表格中的最后一个单元格.我该怎么做呢?看起来它很简单,但我无法弄明白.
这是我到目前为止所尝试的(在cellForRowAtIndexPath中):
if (cellJustAdded && indexPath.row == [array count]-1) {
cell.accessibilityElementIsFocused = YES; //obviously this does not work
}
Run Code Online (Sandbox Code Playgroud)
但我不认为你可以像这样使用accessibilityElementIsFocused.
当您希望VoiceOver选择某个元素时,您可以使用发布辅助功能通知UIAccessibilityPostNotification( ... );.
根据它是主要(完整屏幕)更改还是次要(仅限布局)更改,您应该发布
UIAccessibilityScreenChangedNotification (完全改变)UIAccessibilityLayoutChangedNotification (小变化)在这两种情况下,可选参数是VoiceOver应移动到的元素.
因此,在将新单元格添加到表格视图后,您可以调用
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification,
yourNewCellThatShouldHaveFocus);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4971 次 |
| 最近记录: |