首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将阴影添加到自定义UISlider旋钮图像?

将阴影添加到自定义UISlider旋钮图像?
EN

Stack Overflow用户
提问于 2013-04-25 22:16:54
回答 2查看 3.4K关注 0票数 2

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

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

这是我用来定制UISlider的代码

代码语言:javascript
复制
UIImage *slideBtImg = [UIImage imageNamed:SliderKnobImg];  
[self.ratingSlider setThumbImage:slideBtImg forState:UIControlStateNormal];  
[self.ratingSlider setThumbImage:slideBtImg forState:UIControlStateHighlighted];

如何实现带有阴影的自定义旋钮,并正确覆盖端点??

EN

回答 2

Stack Overflow用户

发布于 2013-05-27 13:27:56

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

代码语言:javascript
复制
// 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),并调整它,使我的阴影自定义旋钮很好地在中心。希望这能有所帮助;)

代码语言:javascript
复制
- (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);
}
票数 1
EN

Stack Overflow用户

发布于 2013-05-27 14:05:44

你可以在你的图片SliderKnobImg中添加一些透明的空间。保持图像的宽度小于滑块的宽度,然后使用[slideBtImg resizableImageWithCapInsets:...]作为滑块的thumbImage

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16217173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档