我在使用UISlider编程时遇到了一些问题。
1)风格:我知道我们必须设置最小和最大图像。我只是不确定什么图像和任何图像参考将是伟大的?我只想从蓝色变为黑色!
2)另外,我的UISlider代码是这样的:
头文件中的:
UISlider *slider;
代码文件中的:
//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);
}
我从函数得到的值在两端都是0而在它们之间的值非常大(正负...随机值)。
有人可以帮助我吗?感谢。
答案 0 :(得分:2)
对于第1部分,要用黑色替换滑块轨道的默认蓝色部分,您可以拍摄默认蓝色轨道的快照并将其转换为这样的较暗灰度(仅需要左端和1个像素)可伸缩的部分):
并致电setMinimumTrackImage:forState:
:
UIImage *minTrackImg = [[UIImage imageNamed:@"MinimumTrackImage.png"]
stretchableImageWithLeftCapWidth:4 topCapHeight:0];
[photoSlider setMinimumTrackImage:minTrackImg forState:UIControlStateNormal];
对于第2部分,记录的值没有意义,因为value
属性的类型为float
,您需要使用%f
而不是%d
(请参阅{{3 }}):
NSLog(@"val: %f",photoSlider.value);