2

我为我的滑块提供了滑块图形。

这是结果: 在此处输入图像描述

然后在右边 在此处输入图像描述

所以你看,边缘变成了一个“盒子”而不是圆形。我真正想要的是与苹果提供的更接近的东西。这是我用来在使用自定义滑块图像和 nil 之间来回切换的代码:

- (IBAction)groupPinButton:(id)sender {
    self.groupPinButton.selected = ! self.groupPinButton.selected;
    UIImage *minImage = [[UIImage imageNamed:@"minimum_slider.png"]resizableImageWithCapInsets2:UIEdgeInsetsMake(0, 5, 0, 0)];
    UIImage *maxImage = [[UIImage imageNamed:@"maximum_slider.png"]resizableImageWithCapInsets2:UIEdgeInsetsMake(0, 0, 0, 5)];
    if (self.groupPinButton.selected)
    {


        [self.distanceSlider setMaximumTrackImage:maxImage forState:UIControlStateNormal];
        [self.distanceSlider setMinimumTrackImage:minImage forState:UIControlStateNormal];
    }
    else{

        [self.distanceSlider setMaximumTrackImage:nil forState:UIControlStateNormal];
        [self.distanceSlider setMinimumTrackImage:nil forState:UIControlStateNormal];
    }
}

如果我将 maximumTrackImage 设置为 nil,这是屏幕截图:

在此处输入图像描述 在此处输入图像描述

哪个看起来好多了。但我想定制。

我用于 minimum_slider.png 和 maximum_slider.png 的图片如下:

在此处输入图像描述 在此处输入图像描述

你可以到达那里

http://i.stack.imgur.com/n30aw.png

http://i.stack.imgur.com/sF9SQ.png

请注意,另一边很好。因此,当滑块位于除最大值和最小值之外的任何位置时,一切正常。如果滑块处于最大值,那么最右边的角落就会被弄乱。最左边的角落很好。

4

1 回答 1

2

啊! 我遇到了同样的问题。当您到达程序结束时,滑块处于最大值时,整个轨道图像现在位于左侧,在您的示例中为“minimum_slider.png”。因此,“maximum_slider”图像的任何部分都没有显示(这会给你圆形的右边缘),只有“minimum_slider”的方形右侧。

我怀疑答案是让你的两个图像的两端都是圆形的,并在图形中间制作可扩展部分(边缘插图)。

我还没有这样做,因为我仍然对 UIEdgeInsets 的工作方式感到困惑(我发现文档很糟糕!)而且默认轨道现在对我来说已经足够了。所以,当你解决这个问题时,让我们都知道。

于 2012-10-25T21:17:17.170 回答