0

私は私のiOSアプリケーションのアクセシビリティをサポートしています(Swiftで)。私は親ビュー(TableViewCell)をタップすると、それは2つのラベルを読み込み、デフォルトで内部コレクションビューを持つTableViewCellのiOSアクセシビリティ

enter image description here

、:私はこのようになりますこれは、(セルあたりの内部ImageViewので)内部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] 
} 

EDIT:いくつかのコードを掲載しました。

助けや洞察力があれば教えてください。ありがとう!

答えて

0

私が問題を理解していれば、いつでもアプリがあなたが行をクリックしたと思っているのでコレクションをクリックすることはできません。 行の選択を無効にして、行の幅と高さが同じで、touchRecognitionで非表示のビューをコレクションの下に配置しようとしましたか?あなたが行をクリックしたようにビューをクリックすると、あなたの問題を解決できると思います。

もう1つのヒント:このメソッドが呼び出されないことがあるので、awakeFromNibメソッドにデリゲートの設定を入れないでください。作成されるオブジェクトによって異なります。常にviewDidLoad()に配置します。

関連する問題