2011-12-26 33 views
11

Tôi có UITableView mà tôi đã cuộn xuống dưới cùng ngay khi người dùng thêm ô phần tử/bảng khác vào đó. Đối với màn hình này hoạt động tốt, bởi vì người dùng có thể nhìn thấy các tế bào mà họ chỉ cần thêm ở dưới cùng của bảng. Nhưng khi chạy ứng dụng của tôi bằng VoiceOver, UITableCell đầu tiên được tập trung và đọc là ô trên cùng hiển thị trên màn hình.Đặt tiêu điểm của giọng nói trên một ô cụ thể trong uitableview (UIAccessibility)

Tôi muốn đặt nó sao cho ô được tập trung và sau đó đọc ngay khi UITableView này xuất hiện là ô cuối cùng trong bảng. Làm thế nào để tôi làm điều này? Có vẻ như nó sẽ rất đơn giản nhưng tôi không thể hiểu được.

Đây là những gì tôi đã cố gắng cho đến nay (trong cellForRowAtIndexPath):

if (cellJustAdded && indexPath.row == [array count]-1) { 
    cell.accessibilityElementIsFocused = YES; //obviously this does not work 
} 

nhưng tôi không nghĩ rằng bạn có thể sử dụng accessibilityElementIsFocused như thế.

+0

Được rồi vì vậy tôi khá chắc chắn câu trả lời cho điều này nằm ở đâu đó với 'UIAccessibilityZoomFocusChanged' nhưng tôi dường như không thể có được nó làm việc. – Ginny

+0

'UIAccessibilityZoomFocusChanged' được sử dụng khi tính năng zoom được bật trong cài đặt. –

Trả lời

8

Khi bạn muốn VoiceOver chọn một yếu tố nhất định, bạn có thể đăng thông báo trợ năng bằng cách sử dụng UIAccessibilityPostNotification(...);.

Tùy thuộc vào nếu đó là một lớn (hoàn toàn màn hình) thay đổi hoặc trẻ vị thành niên (bố trí chỉ) thay đổi, bạn nên gửi một trong hai

  • UIAccessibilityScreenChangedNotification (hoàn toàn thay đổi)
  • UIAccessibilityLayoutChangedNotification (thay đổi nhỏ)

Trong cả hai trường hợp, đối số tùy chọn là phần tử mà VoiceOver sẽ di chuyển đến.

Vì vậy, sau khi đã thêm các tế bào mới để xem bảng của bạn, bạn sẽ gọi

UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, 
           yourNewCellThatShouldHaveFocus); 
+0

Cách này dường như không hoạt động đối với tôi ở nhiều nơi. Bất kỳ đoán có thể là lý do gì? – Dynamite

Các vấn đề liên quan