如何自定义滑块?

时间:2011-09-19 07:23:26

标签: iphone objective-c xcode user-interface slider

我已经像这样创建了自定义滑块

UIImage *image = [UIImage imageNamed:@"thumb.png"];


CGRect frame = CGRectMake(22.5, 220.0, 280.0, 20.0);
UISlider *myslider = [[UISlider alloc] initWithFrame:frame];


[myslider addTarget:self action:@selector(sliderChanged:) forControlEvents:UIControlEventValueChanged];
[myslider setBackgroundColor:[UIColor clearColor]];

[myslider setThumbImage:image  forState:UIControlStateNormal];
UIImage *stetchLeftTrack = [[UIImage imageNamed:@"leftLineImage.png"]
                            stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];
UIImage *stetchRightTrack = [[UIImage imageNamed:@"SlideRight.png"]
                             stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];

[myslider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
[myslider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];


 myslider.minimumValue = 0.0;
 myslider.maximumValue = 100.0;
 myslider.continuous = YES;
 myslider.value = 5.0;
[self.view addSubview:myslider];

在这个滑块中我已经采用了滑块左轨道图像和滑块右轨道图像两个图像的大小相同我通过调整预览大小来完成此操作但是我仍然得到我的左轨道图像更大我该如何解决这个问题问题。 和我的第二个问题 我已经在滑块值更改时调用了该事件,但是当滑块完全滑动或滑块值达到100时我需要调用一个事件,我该怎么办呢。

1 个答案:

答案 0 :(得分:1)

您好第一个问题请参阅开发人员提供的UICatalog应用示例。

http://developer.apple.com/library/ios/#samplecode/UICatalog/Introduction/Intro.html

对于第二个答案,您可以尝试: -

- (void)sliderChanged:(id)sender
{
if (sender.value==100) {
//do your code  
}
    else {
        //do nothing
    }

}