UISlider 的问题:打印滑块的值并更改样式
我在 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,中间的值非常大(正值和负值......随机值) 。
有人可以帮我吗?谢谢。
I am facing some problem with UISlider programming.
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于第 1 部分,要将滑块轨道的默认蓝色部分替换为黑色,您可以拍摄默认蓝色轨道的快照并将其转换为更深的灰度,如下所示(只需要左端和可拉伸部分的 1 个像素) :
并调用
setMinimumTrackImage:forState:
:对于第 2 部分,记录的值没有意义,因为
value
属性的类型为float
并且您需要使用%f
而不是%d
(请参阅字符串格式说明符):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:
:For part 2, the values logged don't make sense because the
value
property is of typefloat
and you need to use%f
instead of%d
(see String Format Specifiers):