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

现在使用此图像时,当我将旋钮滑动到两端时,实际的旋钮不能覆盖端点,因此端点在旋钮图像的透明区域下可见。

这是我用来定制UISlider的代码
UIImage *slideBtImg = [UIImage imageNamed:SliderKnobImg];
[self.ratingSlider setThumbImage:slideBtImg forState:UIControlStateNormal];
[self.ratingSlider setThumbImage:slideBtImg forState:UIControlStateHighlighted];如何实现带有阴影的自定义旋钮,并正确覆盖端点??
发布于 2013-05-27 13:27:56
在UISlider.h内部,有一些方法可以让您根据需要自定义滑块旋钮和轨迹。(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;这是我自己的例子。它需要一些数学运算。我得到一个当前滑块位置的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);
}发布于 2013-05-27 14:05:44
你可以在你的图片SliderKnobImg中添加一些透明的空间。保持图像的宽度小于滑块的宽度,然后使用[slideBtImg resizableImageWithCapInsets:...]作为滑块的thumbImage。
https://stackoverflow.com/questions/16217173
复制相似问题