iphone - 如何获取UISlider拇指图像的中心

标签 iphone cocoa-touch user-interface uislider

我正在创建一个自定义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/

相关文章:

objective-c - 在 iOS 中使用 NSUrlSession 一次下载 1 个文件

ios - 将十六进制转换为NSString

user-interface - PyQt 和 QThreads : separate threads still freezing main GUI thread?

java - netbeans 生成器中的自上而下框布局

c# - .Net 可折叠面板或可折叠链接控件

iphone - 在iPhone App中管理不同服务器上的国家/地区数据库

ios - Swift - UIScrollview 中的子 UIView 直到旋转后才显示

ios - 如何在 UITextField 中禁止特殊字符但允许亚洲/中东字符

objective-c - 如何从代码中的任何位置访问实现 UIApplicationDelegate 的对象?

ios - 定制元素