我正在创建一个自定义UISlider来测试一些界面创意。主要是基于使拇指图像更大。
我找到了如何做到这一点,就像这样:
UIImage *thumb = [UIImage imageNamed:@"newThumbImage_64px.png"];
[self.slider setThumbImage:thumb forState:UIControlStateNormal];
[self.slider setThumbImage:thumb forState:UIControlStateHighlighted];
[thumb release];
为了计算相关值,我需要知道拇指图像在被操纵时的中心点落在哪里。并且该点应该位于其 super View 的坐标中。
查看 UISlider 文档,我没有看到任何跟踪此问题的属性。
是否有一些简单的方法来计算它,或者可以从某些现有值中得出它?
最佳答案
这将返回 UISlider 拇指图像中心在 View 坐标中的正确 X 位置:
- (float)xPositionFromSliderValue:(UISlider *)aSlider {
float sliderRange = aSlider.frame.size.width - aSlider.currentThumbImage.size.width;
float sliderOrigin = aSlider.frame.origin.x + (aSlider.currentThumbImage.size.width / 2.0);
float sliderValueToPixels = (((aSlider.value - aSlider.minimumValue)/(aSlider.maximumValue - aSlider.minimumValue)) * sliderRange) + sliderOrigin;
return sliderValueToPixels;
}
将其放入 View Controller 中并像这样使用它:(假设属性名为 slider)
float x = [self xPositionFromSliderValue:self.slider];
关于iphone - 如何获取UISlider拇指图像的中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1714405/