0

iOS 앱의 접근성 지원 (Swift에서)을 진행하고 있습니다. 나는 부모 뷰 (TableViewCell)를 누를 때 기본적으로iOS 내 CollectionView가있는 TableViewCell의 액세스 가능성

enter image description here

는, 그것이이 개 레이블을 읽 I는 다음과 같습니다 (셀 당 내부 이미지 뷰와 함께) 내부 CollectionViewUITableViewCell의이 CollectionView 셀을 탭하면 셀의 이미지 이름이 읽 힙니다. 그러나 일부 레이블과 이미지는 접근성 값이 다르기 때문에 수동으로 설정해야했습니다.

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { 
     if let tableViewCell = cell as? MyParentTableView { 
      tableViewCell.isAccessibilityElement = true 
      tableViewCell.accessibilityLabel = getCorrectAccessibilityLabel() 
     } 
    } 

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) { 
    // sample only 
    if let myCell = cell as? MyCollectionViewCell { 
     myCell.isAccessibilityElement = true 
     myCell.accessibilityValue = getCorrectAccessibilityLabel() 
    } 
} 

내가했을 때, 그 부모 뷰 블록 전체보기, 그래서 더 이상 CollectionView 세포에 접근 상자를 집중할 수 없으며 VoiceOver를 더 이상 그들을 읽지 않습니다. 나는 TableView의 접근성을 먼저 설정하고 각 CollectionView 셀의 접근성을 시도하고 TableView에서 accessibilityElements을 사용했지만 작동하지 않는 것 같습니다.

// TableViewCell's awakeFromNib function  
override func awakeFromNib() { 
    super.awakeFromNib() 

    self.collectionView.dataSource = self 
    self.collectionView.delegate = self 

    self.accessibilityElements = [self, self.collectionView] 
} 

편집 : 게시 됨 코드.

도움이나 통찰력에 감사드립니다. 감사!

답변

0

내가 문제를 이해한다면 항상 앱이 행을 클릭한다고 생각하기 때문에 컬렉션을 클릭 할 수 없다는 것입니다. 행의 선택을 비활성화하고 행의 너비와 높이가 같고 touchRecognition이있는 보이지 않는보기를 컬렉션 아래에 놓으려고 했습니까? 보기를 클릭하면 행을 클릭 한 것처럼 보이지만 문제가 해결 될 수 있다고 생각합니다.

다른 팁 하나 : awakeFromNib 메서드에 위임자의 설정을 지정하지 마십시오.이 메서드는 종종 호출되지 않기 때문에. 그것은 생성 된 객체에 따라 다릅니다. 항상 viewDidLoad()에 두십시오.