iOS:如何使用滑块设置自定义背景颜色?
Posted
技术标签:
【中文标题】iOS:如何使用滑块设置自定义背景颜色?【英文标题】:iOS: how to set custom background colour with sliders? 【发布时间】:2012-12-24 11:28:05 【问题描述】:首先我想说我在这个网站上看到了一些关于如何做到这一点的帖子,虽然似乎没有一个对我有用,所以请不要关闭它,直到我让它工作。
我想要做的是根据滑块的值改变视图的背景,以便用户可以选择他们想要的背景颜色。
self->colorView.backgroundColor = [UIColor myColor];
myColor =
我想我需要一些这样的代码,虽然我不知道如何定义我的颜色将是什么;像“红色:redSlider / 255”等其他颜色?我也不知道在哪里实现上面的代码,因为当使用更改滑块的值时,我需要它不断更新。
我在编程方面非常基础,因为我只是一个青少年,将编程作为一种爱好,我很感激简单的说明,清楚地告诉我需要在哪里放置代码等。
附言它不会让我发布视图的图像,对不起:(
【问题讨论】:
【参考方案1】:在您的 ViewController.h 文件中定义
@property (nonatomic, strong) IBOutlet UISlider *mySlider;
在 ViewController.m 文件中,添加:
- (void) sliderValueChanged:(UISlider *)slider
// Handle your color changing logic here
myView.backgroundColor = [UIColor colorWithRed:0.4f green:0.5f blue:1.0f alpha:1.0f];
在界面生成器中,
拖动 UISlider 以查看并将其“Value Changed”事件出口设置为sliderValueChanged
方法。
现在,当您更改屏幕上的滑块时,颜色应根据您在方法 sliderValueChanged
中的逻辑进行更改
以下是根据您的要求的逻辑:
- (void) sliderValueChanged:(UISlider *)slider
// Assuming slider minimum is 0 and maximum is 1
CGFloat redVal = 0.0f;
CGFloat yellowVal = 0.0f;
CGFloat blueVal = 0.0f;
if (slider == redSlider)
redVal = slider.value;
else if (slider == yellowSlider)
yellowVal = slider.value;
else if (slider == blueSlider)
blueVal = slider.value;
myView.backgroundColor = [UIColor colorWithRed:redVal green:greenVal blue:blueVal alpha:1.0f];
【讨论】:
对不起,我想我没有说清楚。我有三个滑块,一个是红色的,一个是蓝色的,一个是绿色的,三个滑块的调整给出了背景的整体颜色。因此,我需要实现所有三个以提供整体颜色 另外我真的没有任何“变色逻辑”,所以提供这将非常有帮助:) 对此,你能告诉我你想要什么变色逻辑吗? 我希望每个滑块(红色、绿色和蓝色)控制它是该基色的百分比,以便在调整它们时可以更改每种原色的值例如0.5blue、0.5red 和 0green = 紫色。谢谢 非常感谢,但不幸的是我无法得到这是工作!我复制了您编写的代码,将适当的值更改为我为它们命名的值,还检查了所有连接是否正常,但仍然没有运气。会不会是视图没有更新?【参考方案2】:由于 UISlider 实现了 UIAppearence 协议,您可以将其背景颜色设置为:
mySlider.backgroundColor = [UIColor lightGrayColor]; // Or any other color
或:
[[mySlider appearance] setBackgroundColor:[UIColor lightGrayColor]];
【讨论】:
以上是关于iOS:如何使用滑块设置自定义背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章