9

我想做自定义 UISlider,像这样

|o----------| -> |-----O------| -> |------------〇|

最小值会thumbImage很小,在滑块值增加的过程中会增加大小,否则会减小。

有人知道怎么做吗?

4

2 回答 2

11

您可以使用以下代码:

+ (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;
}

取自这里

您将拥有的额外工作将是一个方法 AimageWithImage:scaledToSize: ,该方法将在UISlider's值更改时调用。

于 2012-06-27T08:16:24.577 回答
6

斯威夫特 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
    }
}
于 2017-03-02T15:48:26.260 回答