Мне нужна помощь с доступностью на этикетке внутри таможни TableViewCel
. У меня есть пользовательский TableViewCel
, который имеет 4 метки. В зависимости от статуса моего заказа, метка четыре может быть доступна или нет.
Итак, на TableViewController
я установил cell.accessibilityElements = [cell.labelOne, cell.labelTwo, cell.labelThree, cell.labelFour]
. На моем TableViewCell
я получаю от моего
viewMode.state.asObservable() -> case .statusOpen:
self.labelFour.isAccessibilityElement = false
case .statusClosed:
self.labelFour.isAccessibilityElement = true
Проблема в том, что: если у меня есть, например, 2 ячейки с labelFour с доступностью false, а затем 2 ячейки с true, а затем еще несколько ячеек с ложной доступностью, ошибки голосовой связи. Возвращается ко второй ячейке, а не к 6-й. Я думаю, что это своего рода ошибка из-за повторного использования ячейки, которая не может распознать новый контент.
Если я разрешаю доступ к нему, но помечаю пустым («»), он корректно переходит к ячейке за ячейкой, но останавливается на каждом labelFour, ничего не читая (мне это не нужно).
Я пробовал UIAccessibility.post(notification: UIAccessibility.Notification.layoutChanged, argument: nil)
на четвертой метке и всей ячейке, но это мешает доступности.
Я попытался ovveride func prepareForReuse()
и снова установил доступность. Это не работает.
Я пытался self.layoutSubviews()
; self.layoutIfNeeded()
; self.reloadInputViews()
. Все они не работали.
Я также видел около accessibilityElementDidBecomeFocused
с scrollToRow
и UIAccessibility.post
внутри, но это было для CollectionView, оно не работает для меня.