2011-12-26 2 views
11

사용자가 다른 요소/표 셀을 추가하자마자 아래쪽으로 스크롤하는 UITableView가 있습니다. 화면의 경우 사용자가 방금 추가 한 셀을 표 하단에서 볼 수 있기 때문에 정상적으로 작동합니다. 그러나 VoiceOver를 사용하여 내 응용 프로그램을 실행할 때 초점을 맞추고 읽는 첫 번째 UITableCell은 화면에 표시되는 최상위 셀입니다.uitableview (UIAccessibility)의 특정 표 셀에 voiceover의 초점을 설정하십시오.

이 UITableView가 나타나는 즉시 포커스를받는 셀이 테이블의 맨 마지막 셀이되도록 설정하려고합니다. 어떻게해야합니까? 그것은 아주 간단 할 것처럼 보이지만 그것을 이해할 수 없습니다.

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

하지만 난 당신이 그렇게 accessibilityElementIsFocused 사용할 수 있다고 생각하지 않습니다 :

는 여기에 내가 (cellForRowAtIndexPath에서) 지금까지 시도거야.

+0

좋아 부를 것이다 그러나 나는 그것을 얻을 수없는 것 일하다. – Ginny

+0

'UIAccessibilityZoomFocusChanged'는 줌 기능이 설정에서 켜져있을 때 사용됩니다. –

답변

8

VoiceOver에서 특정 요소를 선택하게하려면 UIAccessibilityPostNotification(...);을 사용하여 액세스 가능성 알림을 게시 할 수 있습니다. 이 주요 (전체 화면) 변경이나 미성년자 인 경우에 따라

(레이아웃에만 해당) 게시해야 변경 중

  • UIAccessibilityScreenChangedNotification (완전 변경)
  • UIAccessibilityLayoutChangedNotification (작은 변화)

두 경우 모두 선택적 인수는 VoiceOver가 이동해야하는 요소입니다.

그래서 테이블보기로 새로운 셀을 추가 한 후 내가이에 대한 답변 UIAccessibilityZoomFocusChanged``어딘가에 놓여 확신 있도록

UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, 
           yourNewCellThatShouldHaveFocus); 
+0

이 방법은 여러 곳에서 저에게 효과가있는 것 같지 않습니다. 그 이유는 무엇이겠습니까? – Dynamite

관련 문제