Я добавляю UIImage к переключателю UIS с помощью свойства thumbTintColor, например:
var theimage = UIImage().circularImage(size: CGSize(width: 31, height: 31))
mySwitch.thumbTintColor = UIColor(patternImage: theimage)
Но изображение добавляется с неправильным размером:
![enter image description here](https://i.stack.imgur.com/anC34.png)
Но в UIIMageView изображение добавляется правильно:
![enter image description here](https://i.stack.imgur.com/puZl9.png)
Я пытаюсь добавить 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!
}
}
Что плохого в моем коде, чтобы неправильно применять изображение? Спасибо! Я редактировал изображения и код, потому что я пытался их изменить. Теперь мой последний код объяснен.