iPhoneOS SDK – Custom UISlider Graphics

15/04/2010
Today I am showing how to add graphics to a UISlider in an iPhone application.
  1. Create a new view based application

Screenshot2010-04-12at15.16.01.BWLVS6GSBm0y.jpg

2. Add the IBOutlets for the UISliders

In the .h file add:

@interface deCustomSliderViewController : UIViewController {

IBOutlet UISlider *slider1;
IBOutlet UISlider *slider2;

}

3. Setup the Interface.

Add a couple sliders to deCustomSliderViewController.xib

Screenshot2010-04-12at15.16.28.sp1lJ5YWNXvi.jpg

And then add the IBOutlet Link – You will only need to do one of these.

Screenshot2010-04-12at15.21.24.3QsjTLPg20UI.jpg


4.Now its time to make them pretty!

Add your image resources to the project resources folder. You will need one for the bar and one for the knob (the slider bit you touch). I have attached some at the end of this post.

I am using these (credit http://www.mynameise.com/renn and http://365psd.com/day/27/) :

slider-bg.dc4VNOeb5oj2.jpg
slider-knob.Q7fZFMmAxbX4.jpg

5. Add the UI Code

The final step is just linking the resources to the IBOutlets. Add the following code in your viewDidLoad or viewWillLoad

//Slider Images
UIImage *stetchLeftTrack = [[UIImage imageNamed:@"slider-bg.png"] stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];
UIImage *stetchRightTrack = [[UIImage imageNamed:@"slider-bg.png"] stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];

//Slider: Top
slider1.backgroundColor = [UIColor clearColor];        
[slider1 setThumbImage: [UIImage imageNamed:@"slider-knob.png"] forState:UIControlStateNormal];
[slider1 setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
[slider1 setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];
slider1.minimumValue = 0.0;
slider1.maximumValue = 100.0;
slider1.continuous = YES;
slider1.value = 20.0;

//Slider: Middle
slider2.backgroundColor = [UIColor clearColor];        
[slider2 setThumbImage: [UIImage imageNamed:@"slider-knob.png"] forState:UIControlStateNormal];
[slider2 setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
[slider2 setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];
slider2.minimumValue = 0.0;
slider2.maximumValue = 100.0;
slider2.continuous = YES;
slider2.value = 50.0;

Thats it! It wasn’t too hard at all hey! Run your app and checkout your new sliders. Mine Looks like this:

Screenshot2010-04-12at15.32.32.VwGIIsHQSwar.jpg


And thats it!

Downloads:

View Comments