Спасибо, что задали этот вопрос.Я столкнулся с той же проблемой, поэтому было здорово получить какое-то подтверждение, что это не просто то, чего мне не хватало.
Хотя Apple, надеюсь, скоро исправит эту ошибку, я реализовал следующий обходной путь, воссоздав сегменты.Этот пример кода основан на UISegmentedControl
с изображениями в качестве сегментов. Конечно, вы можете реализовать тот же подход для строк заголовка:
public func resetSegmentedControl(_ control: UISegmentedControl) {
if #available(iOS 13, *) {
// workaround: recreate the segments
let numSegments = control.numberOfSegments
let segmentImages = (0..<numSegments).compactMap { control.imageForSegment(at: $0) }
control.removeAllSegments()
for (index, image) in segmentImages.enumerated() {
control.insertSegment(with: image, at: index, animated: false)
}
} else {
// for earlier versions of iOS, just reset the selectedSegmentIndex
control.selectedSegmentIndex = UISegmentedControl.noSegment
}
}
При удалении и повторной вставке сегментов наблюдается небольшое мерцание, нодля меня это предпочтительнее сломанного состояния.