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:如何使用滑块设置自定义背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何设置自定义小部件的背景颜色和边框宽度?

请问如何自定义UITableViewCell的背景颜色

DEVC++自定义背景色及代码颜色后如何恢复

使用自定义颜色代码设置面板背景

ios自定义UITableviewCell选择的背景颜色没有SelectedBackgroundView

如何在 JTextPane 中的一行上设置自定义背景颜色