I would like to make the custom UISlider, something like this
|o----------| -> |-----O------| -> |------------〇|
the thumbImage
will be small at the minimum value, it will increase the size during the slider value increase, otherwise it will decrease.
is anyone know how to do it?
You can't change the size of the default thumb image, but UISlider has a method setThumbImage(_:for:) that will allow you to pass a similar, smaller image. See Customizing the Slider's Appearance of the API Reference.
You can use this code:
+ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
//UIGraphicsBeginImageContext(newSize);
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
Taken from here.
The extra work you will have, will be a method A that will call the imageWithImage:scaledToSize:
when the UISlider's
value changes.
Swift 3:
extension UIImage {
func scaleToSize(newSize: CGSize) -> UIImage {
UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0)
draw(in: CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height))
let newImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext();
return newImage
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With