Как установить backgroundColor UISegmentedControl на белый в iOS 13 - PullRequest
4 голосов
/ 25 сентября 2019

iOS 13 внесла некоторые изменения в UISegmentedControl, включая действительно приятную анимацию при переключении выбранного сегмента.Тем не менее, я замечаю, что оно не отображает свойство backgroundColor правильно, всегда кажется, что оно имеет некоторый оттенок.

Я видел вопросы, которые отвечают на вопрос о том, как установить selectedSegmentTintColor итакой, но я изо всех сил пытаюсь установить backgroundColor, чтобы сказать .white, независимо от того, что я делаю, он всегда показывает немного серого, даже если не применяется tintColor или подобный параметр.Установка backgroundColor для других цветов показывает то же поведение, но наиболее очевидно это с белым.Добавление к загадке заключается в том, что хотя эта разница проявляется как на симуляторах iOS 13, так и на физическом устройстве под управлением iOS 13, визуальный отладчик (в XCode 11 GM2) не показывает эту разницу!

Вот пара скриншотов, показывающихчто даже если backgroundColor из UISegmentedControl установлено так же, как backgroundColor вида, показанного за ним, они немного отличаются.

Устройство под управлением iOS 13 (белый backgroundColor) enter image description here

То же представление / код, показанный в Visual Debugger (white backgroundColor) enter image description here

Устройство под управлением iOS 13 (синий backgroundColor) enter image description here

Я попытался предложить backgroundImage, как предложено в этом сообщении SO: UISegmentedControl iOS 13 ясного цвета , но в конечном итоге стиль возвращается к тому, как он выглядел в iOS 12, и вы также теряете приятную анимацию.

Любое руководство или предложения с благодарностью!Я также подал отчет об ошибке в Apple, посмотрим, что из этого получится.

...