设置thumbImage并观看滑块消失?

时间:2010-06-14 16:09:17

标签: iphone frameworks uiimage uislider

[sld1 setThumbImage:[UIImage imageNamed:@"Blue.png"] forState:UIControlStateHighlighted];
[sld1 setThumbImage:[UIImage imageNamed:@"Blue.png"] forState:UIControlStateNormal     ];

这会导致滑块图像消失吗?我的一切都消失了。 (拇指图像显示得很好。)

Apple的文档让我觉得我可以使用上面2行代码中的任何 ONE 。 (但我想我真的需要两者。)

我找不到任何关于“你必须要做所有4”的事情:

Set the normal-state image.
Set the highlighted-state image.
Set the setMinimumTrackImage.
Set the setMaximumTrackImage.

1 个答案:

答案 0 :(得分:1)

如果您开始使用图形自定义UISlider,则必须至少设置3个图形。 轨迹栏的右侧和左侧以及拇指图像:

以下是我上次使用UISlider时的方法:

    CGRect frame = CGRectMake(20.0f, 6.0, 280.0f, 20.0f);
    UISlider *customSlider = [[UISlider alloc] initWithFrame:frame];
    [customSlider addTarget:self action:@selector(sliderMove:) forControlEvents:UIControlEventValueChanged];
    [customSlider addTarget:self action:@selector(sliderStart:) forControlEvents:UIControlEventTouchDown];
    [customSlider addTarget:self action:@selector(sliderEnd:) forControlEvents:UIControlEventTouchUpInside];        
    [customSlider addTarget:self action:@selector(sliderEnd:) forControlEvents:UIControlEventTouchUpOutside];   

    // in case the parent view draws with a custom color or gradient, use a transparent color
    customSlider.backgroundColor = [UIColor clearColor];    
    UIImage *stetchLeftTrack = [[UIImage imageNamed:@"slider.png"]
                                stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];

     UIImage *stetchRightTrack = [[UIImage imageNamed:@"slider_right.png"]
                                stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];

    [customSlider setThumbImage: [UIImage imageNamed:@"slider-knop.png"] forState:UIControlStateNormal];
    [customSlider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
    [customSlider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];

我的光学系统UISlider或任何其他状态的突出显示状态没有意义,您的手指可能会覆盖拇指图像,因此用户永远不会看到它。 我不确定它只是从UIButton扩展而且它可能无法处理它?<​​/ p>