2014-04-10 5 views
0

내 응용 프로그램에서 VoiceOver 지원에 몇 가지 문제가 있습니다. 디버깅이 정말 어려워요.VoiceOver 제스처가 예상대로 작동하지 않습니다.

나는 각 셀이 VoiceOver에서 읽을 수있는 요소 인 테이블 뷰를 가지고 있습니다. 각 요소를 탭하면 잘 작동합니다. 그것의 요약은 큰 소리로 읽 힙니다. here으로 설명한 두 손가락 스 와이프 제스처를 사용하면 내 테이블보기의 모든 셀을 맨 아래까지 순환하여 모든 내용을 큰 소리로 읽어야합니다. 문제는 독서를 시작하고 예상대로 세포를 통과하지만 갑자기 멈추는 것입니다. VoiceOver 커서가 움직이는 것을 볼 수 있으며 심지어 다음 셀로 이동하지만 읽지 않습니다.

UITableView 서브 클래스를 시도하고 UIAccessibilityContainer 메서드를 구현했지만 그 결과가 향상되지 않았습니다.

내보기에는 여러 유형의 셀이 있는데 셀 유형 중 하나가 멈추었을 때이 셀 유형 뒤에 멈춘 것처럼 보이기 때문에 셀 유형 중 하나가 원인 일 수 있다고 생각하지만 항상 다음 셀로 커서를 이동하면 이 셀 유형 다음에 항상이 멈추지 않습니다.

나는 약간의 코드를 기꺼이 제공 하겠지만,이 시점에서 정확히 무엇을 제공해야하는지 확신 할 수 없습니다. :)

이 제스처가 호출 될 때 콜백을받지 못하기 때문에 이런 식으로 디버깅하는 방법을 알지 못합니다. 질문에 답할 수는 없지만 이와 같이 VoiceOver 문제를 디버깅하는 방법에 대한 모든 정보는 높이 평가됩니다.

+0

거의 모든 이상한 문제를 디버깅하는 것과 마찬가지로 작은 프로젝트에서 문제를 재현 할 수 있는지 확인하십시오. 모든 관련 코드를 복사하고 더 이상 재생산하지 않을 때까지 제거하십시오. 그런 다음 버그를 재생산 할 수있는 최소의 프로젝트가 생길 때까지 물건을 다시 추가하십시오. –

답변

0

완전히 이해하지는 않지만 문제를 해결했습니다.

진행이 중지되었지만 특정 셀 유형 이후가 아니라 스크롤 후. 대부분의 셀에서 암시 적 accessiblityLabel에 의존하여 레이블을 직접 지정하지 않았습니다.

문제를 해결하기 위해 셀을 변경하여 모두 accessibilityLabel 속성을 무시하고 특히 레이블을 반환합니다. 그게 효과가있었습니다.

새로로드 된 셀에 액세스 가능성 레이블을 요청하기 전에 데이터가 완전히로드되지 않은 타이밍 문제로 인해 발생한 것으로 의심됩니다.

관련 문제