UISlider 自定义轨道图像设置不正确
UISlider custom track image not setting up properly
我创建了一个 UISlider
,它具有不同的最小和最大轨道自定义图像。
这是UISlider
的正常状态
但是当我滑动时 UISlider
第二张图片坏了。
设置不正确。
谁能告诉我有什么问题吗?
这是我的代码:
slider = [[UISlider alloc] initWithFrame:CGRectMake(24, 24, [VTUIKit screenWidth] - 48, 10)];
slider.tintColor = kVTColorTurquoise500;
[slider setBackgroundColor:[UIColor clearColor]];
numbers = @[@(0.5), @(1), @(2.5), @(5), @(10), @(25), @(50), @(100), @(200), @(500), @(999)];
NSInteger numberOfSteps = ((float)[numbers count] - 1);
slider.maximumValue = numberOfSteps;
slider.minimumValue = 0;
slider.continuous = YES;
UIImage *stetchLeftTrack = [[UIImage imageNamed:@"Map-Range-Active"]
stretchableImageWithLeftCapWidth:5 topCapHeight:0.0];
UIImage *stetchRightTrack = [[UIImage imageNamed:@"Map-Range"]
stretchableImageWithLeftCapWidth:5 topCapHeight:0.0];
[slider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
[slider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];
[slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];
[self.bottomContainerView addSubview:slider];
如有任何帮助,我们将不胜感激。
提前致谢。
好的,经过如此多的尝试和错误并参考了如此多的答案,我得到了答案。
为了有一个像我一样的UISlider
,我必须设置最小和最大轨道图像如下
UIImage * stetchLeftTrack = [[UIImage imageNamed:@"leftImage"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
UIImage * stetchRightTrack = [[UIImage imageNamed:@"rightImage"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
但这里的问题是,两个图像的大小(宽度)必须与滑块完全相同。
所以,这就是我解决问题的方法。
我创建了一个 UISlider
,它具有不同的最小和最大轨道自定义图像。
这是UISlider
但是当我滑动时 UISlider
第二张图片坏了。
设置不正确。
谁能告诉我有什么问题吗?
这是我的代码:
slider = [[UISlider alloc] initWithFrame:CGRectMake(24, 24, [VTUIKit screenWidth] - 48, 10)];
slider.tintColor = kVTColorTurquoise500;
[slider setBackgroundColor:[UIColor clearColor]];
numbers = @[@(0.5), @(1), @(2.5), @(5), @(10), @(25), @(50), @(100), @(200), @(500), @(999)];
NSInteger numberOfSteps = ((float)[numbers count] - 1);
slider.maximumValue = numberOfSteps;
slider.minimumValue = 0;
slider.continuous = YES;
UIImage *stetchLeftTrack = [[UIImage imageNamed:@"Map-Range-Active"]
stretchableImageWithLeftCapWidth:5 topCapHeight:0.0];
UIImage *stetchRightTrack = [[UIImage imageNamed:@"Map-Range"]
stretchableImageWithLeftCapWidth:5 topCapHeight:0.0];
[slider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
[slider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];
[slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];
[self.bottomContainerView addSubview:slider];
如有任何帮助,我们将不胜感激。 提前致谢。
好的,经过如此多的尝试和错误并参考了如此多的答案,我得到了答案。
为了有一个像我一样的UISlider
,我必须设置最小和最大轨道图像如下
UIImage * stetchLeftTrack = [[UIImage imageNamed:@"leftImage"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
UIImage * stetchRightTrack = [[UIImage imageNamed:@"rightImage"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
但这里的问题是,两个图像的大小(宽度)必须与滑块完全相同。
所以,这就是我解决问题的方法。