problem with UISlider : printing values of the slider and getting to change the style
I am facing some problem with UISlider progra开发者_StackOverflow社区mming.
1) style: I know we have to set the minimum and maximum images. I am just not sure what images and any image reference will be great ? I only want to change from blue to black !
2) also, my code for the UISlider is this :
in header file:
UISlider *slider;
in code file:
//slider
CGRect frame=CGRectMake(10, 70, 300, 10);
photoSlider=[[UISlider alloc] initWithFrame:frame];
photoSlider.minimumValue=0.0;
photoSlider.maximumValue=90.0; //maximumPhotoImage
photoSlider.continuous=NO;
photoSlider.value=10.0;
photoSlider.backgroundColor=[UIColor clearColor];
//photoSlider
[photoSlider addTarget:self action:@selector(updateImage:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:photoSlider];
- (void) updateImage:(id) sender
{
NSLog(@"val: %d",photoSlider.value);
}
The values that I get from the function are 0 at both ends and very large value in between (both positive and negative...random values).
Can anyone kindly help me out ? Thanks.
For part 1, to replace the default blue part of the slider track with black, you could take a snapshot of the default blue track and convert it to a darker grayscale like this (only need the left end and 1 pixel of the stretchable part):
and call
setMinimumTrackImage:forState:
:
UIImage *minTrackImg = [[UIImage imageNamed:@"MinimumTrackImage.png"]
stretchableImageWithLeftCapWidth:4 topCapHeight:0];
[photoSlider setMinimumTrackImage:minTrackImg forState:UIControlStateNormal];
For part 2, the values logged don't make sense because the value
property is of type float
and you need to use %f
instead of %d
(see String Format Specifiers):
NSLog(@"val: %f",photoSlider.value);
精彩评论