Swift -Как изменить цвет кривой на элементе управления UISwitch - PullRequest
0 голосов
/ 17 марта 2020

Как я могу изменить цвет кривой, которая следует за UISwitch контролем? Я попытался изменить borderColor, но он привязан к рамке.

Это образец фотографии из другого вопроса. Я хочу переключить цвет серебряной кривой на этой фотографии (не круглая кнопка и не оранжевый фон)

enter image description here

Я пробовал эти 2 свойства но .layer.borderWidth = 2.0 и .layer.cornerRadius = 15 изменяет кадр , а не кривую

Когда это на , я хочу, чтобы кривая была .clear, а когда она off Я хочу, чтобы это было .red

lazy var switchControl: UISwitch = {
    let switchControl = UISwitch()
    switchControl.addTarget(self, action: #selector(switchValueDidChange(_:)), for: .valueChanged)
}()

@objc func switchValueDidChange(_ sender: UISwitch) {

    if (sender.isOn == true) {

        sender.layer.borderColor = UIColor.clear.cgColor // this doesn't work

    } else {

        sender.layer.borderColor = UIColor.red.cgColor // this doesn't work
    }
}

Ответы [ 3 ]

2 голосов
/ 17 марта 2020

Да, как сказал iChirag, этого нельзя сделать с помощью встроенного UISwitch.

Что касается того, почему это невозможно, трудно сказать с уверенностью. Я думаю, это потому, что Apple рекомендует использовать ограниченную цветовую палитру в своих Руководствах по интерфейсу для человека . Основная цель использования цветов в приложении iOS в основном состоит в том, чтобы передавать информацию, помогать пользователю различать отдельные части пользовательского интерфейса или привлекать внимание к действиям пользователя. Возможно, они думают, что установка пользовательского цвета для кривой UISwitch выходит за рамки этих целей.

С учетом сказанного довольно легко создать собственный пользовательский UISwitch, если вам нужен такой внешний вид. Вот руководство для начала, надеюсь, это поможет:

Создание пользовательского UISwitch (часть 1)

1 голос
/ 17 марта 2020

Изменение цвета оттенка UISwitch

mSwitch.tintColor = offColor // Пользовательский цвет

0 голосов
/ 17 марта 2020

Я считал, что это невозможно без советов по взлому SDK. Но я предлагаю создать свой собственный такой элемент управления, используя изображение.

...