gpt4 book ai didi

ios - 向自定义 UISlider 旋钮图像添加阴影?

转载 作者:行者123 更新时间:2023-11-28 17:54:42 27 4
gpt4 key购买 nike

我需要为 UISlider 放置一个带阴影的自定义旋钮图像。到目前为止,我有一个 38x38 的图像,其中有一个区域定义了旋钮的阴影。

Knob Image@2x

现在在使用此图像时,当我将旋钮滑动到末端时,实际旋钮无法覆盖端点,因此在旋钮图像的透明区域下可以看到端点

knob at the extreme end

这是我用来自定义 UISlider 的代码

UIImage *slideBtImg = [UIImage imageNamed:SliderKnobImg];  
[self.ratingSlider setThumbImage:slideBtImg forState:UIControlStateNormal];
[self.ratingSlider setThumbImage:slideBtImg forState:UIControlStateHighlighted];

我怎样才能实现一个带有阴影的自定义旋钮,正确覆盖端点?

最佳答案

查看 UISlider.h 内部,有一些方法可以让您根据需要自定义 slider 旋钮和轨道。 (iOS 2.0 及以上版本)

// lets a subclass lay out the track and thumb as needed
- (CGRect)minimumValueImageRectForBounds:(CGRect)bounds;
- (CGRect)maximumValueImageRectForBounds:(CGRect)bounds;
- (CGRect)trackRectForBounds:(CGRect)bounds;
- (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value;

这是我自己的例子。它需要一些数学工作。我得到当前 slider 位置的 valueRatio(从 0 到 1)并调整它以使我的阴影自定义旋钮很好地位于中心。希望有所帮助;)

- (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value {
float valueRatio = ( value - self.minimumValue ) / valueRange;
return CGRectMake(valueRatio * (bounds.size.width - 26) + 3, 7, 20, 20);
}

关于ios - 向自定义 UISlider 旋钮图像添加阴影?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16217173/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com