Как применить изображение с помощью thumbTintColor к UISwitch в Swift? - PullRequest
0 голосов
/ 20 октября 2019

Я добавляю UIImage к переключателю UIS с помощью свойства thumbTintColor, например:

var theimage = UIImage().circularImage(size: CGSize(width: 31, height: 31))

mySwitch.thumbTintColor = UIColor(patternImage: theimage)

Но изображение добавляется с неправильным размером:

enter image description here

Но в UIIMageView изображение добавляется правильно:

enter image description here

Я пытаюсь добавить UIIImage (простойкруг с цветной рамкой) с UIBezierPath, и он добавлен с неправильной позиции и размераЗатем я попытался добавить изображение из UIImage в ресурсы, но это тоже неправильно.

extension UIImage {
func circularImage(size: CGSize) -> UIImage {
    // Draw a 1 pt border line with radius 5 in the rect
    let rect = CGRect(x: 0, y: 0, width: size.width, height: size.height)
     let borderWidth: CGFloat = 4

    UIGraphicsBeginImageContextWithOptions(rect.size, false, 0.0)
    let context = UIGraphicsGetCurrentContext()

    var path = UIBezierPath()
    path = UIBezierPath(ovalIn: CGRect(x: borderWidth/2, y: borderWidth/2, width: rect.width-borderWidth, height: rect.width-borderWidth))

    UIColor.white.setFill()
    path.fill()

    UIColor.black.setStroke()
    path.lineWidth = borderWidth
    path.stroke()

    // Draw it
    context!.addPath(path.cgPath)

    // Get the final image from context
    let img = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    return img!
}
}

Что плохого в моем коде, чтобы неправильно применять изображение? Спасибо! Я редактировал изображения и код, потому что я пытался их изменить. Теперь мой последний код объяснен.

...