2

我有 UISLider 和 setMinimumTrackImage 和 setMaximumTrackImage。两个图像具有相同的分辨率。如果我移动滑块...图像显示不正确。当我拖动滑块控制拇指时,它们正在移动。我试着用

UIImage * sliderBarImage1 = [UIImage imageNamed:@"slider_b"];
UIImage * sliderBarImage2 = [UIImage imageNamed:@"slider_w"];

sliderBarImage1 = [sliderBarImage1 stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];
sliderBarImage2 = [sliderBarImage2 stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];

[self.slider setMinimumTrackImage:sliderBarImage1 forState:UIControlStateNormal];
[self.slider setMaximumTrackImage:sliderBarImage2 forState:UIControlStateNormal];

有或没有 stretchableImageWithLeftCapWidth 都不正确。当我旋转手机时,轨道上的图像会被错误地缩放,因此图像中的信息会发生变化。类似于这篇文章中的图片:如何在 UISlider 上放置图片?. 当我移动滑块时,图像开始移动,并且颜色在最小和最大轨道中没有重叠,从而产生丑陋的效果。

4

1 回答 1

5

避免拉伸图像变化

UIImage * sliderBarImage1 = [UIImage imageNamed:@"slider_b"];
UIImage * sliderBarImage2 = [UIImage imageNamed:@"slider_w"];

进入

UIImage * sliderBarImage1 = [[UIImage imageNamed:@"slider_b"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
UIImage * sliderBarImage2 = [[UIImage imageNamed:@"slider_w"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
于 2012-09-21T13:23:34.130 回答