视网膜中的拇指图像不在UISlider中工作

时间:2013-05-20 06:06:37

标签: iphone objective-c xcode uislider

我在UISlider上工作,我在滑块上添加了一个Thumb图像(slider_iphone.png 53 X 199)。without retina image但问题是当我添加视网膜图像时(slider_iphone@2x.png 106 X 398),拇指图像变得比简单图像更宽更长。with retina

我搜索了很多谷歌和堆栈溢出但没有找到任何解决方案。为什么不在正确的框架中拍摄视网膜图像。请提出任何解决方案。

代码:

slider = [[UISlider alloc]initWithFrame:CGRectMake(0.0,180.0,320.0,180.0)];

[slider setMinimumValue:1.0f];

[slider setMaximumValue:10.0f];

[slider addTarget:self action:@selector(sliderMoved:) forControlEvents:UIControlEventValueChanged];

UIImage *sliderTrackImage1 = [[UIImage imageNamed: @"button-transparent.png"] stretchableImageWithLeftCapWidth: 0.0 topCapHeight: 0.0];

UIImage *thumb = [UIImage imageNamed:@"slider_iphone@2x.png"];

[slider setMinimumTrackImage: sliderTrackImage1 forState: UIControlStateNormal];
[slider setMaximumTrackImage: sliderTrackImage1 forState: UIControlStateNormal];
[slider setThumbImage:thumb forState:UIControlStateHighlighted];
[slider setThumbImage:thumb forState:UIControlStateNormal];

2 个答案:

答案 0 :(得分:2)

您不应该使用代码中定义的@ 2x图像!

您的捆绑包中的正常图像和@ 2x图像以及代码中都指定了正常图像!

应用程序将根据设备的屏幕适当选择所需的图像。

答案 1 :(得分:2)

无需添加@ 2x只需使用:

[self.slider setThumbImage:[UIImage imageNamed:@"n.png"] forState:UIControlStateNormal];