3

我已经尝试过这段代码但不能正常工作。在 UISlider 的值更改时我调用了这个方法......

@property (strong, nonatomic) IBOutlet UISlider *r;
@property (strong, nonatomic) IBOutlet UISlider *g;
@property (strong, nonatomic) IBOutlet UISlider *b;
@property (strong, nonatomic) IBOutlet UILabel *colorLabel;

- (void)viewDidLoad
{
    [super viewDidLoad];

    _r.minimumValue=0;
    _r.maximumValue=255;

    _g.minimumValue=0;
    _g.maximumValue=255;

    _b.minimumValue=0;
    _b.maximumValue=255;

    // Do any additional setup after loading the view, typically from a nib.
}

-(void)sliderValueChanged:(UISlider*)slider
{
    [_colorLabel setBackgroundColor:[UIColor colorWithRed:_r.value green:_g.value blue:_b.value alpha:1]];
}

如果有人有任何想法,请帮助..

4

5 回答 5

4

这些UIColor方法采用 range 中的每个组件参数0 to 1,因此您需要255.0在传递滑块值之前除以它们。

于 2013-07-15T09:10:12.747 回答
3

试试这个(忽略 alpha 滑块,这是我自己对类似任务的实际解决方案):

记住:让您的滑块从 0 变为 1,以避免通过 255 进行除法。

.h 文件:

IBOutlet UISlider *rSlider;
IBOutlet UISlider *gSlider;
IBOutlet UISlider *bSlider;

.m 文件

-(void)blueSlider:(id)sender
{
    bSlider = (UISlider *)sender;
    UIColor *newColor = [UIColor colorWithRed:rSlider.value green:gSlider.value blue:bSlider.value alpha:alphaSlider.value];
    colorView.backgroundColor = newColor;
}



-(void)greenSlider:(id)sender
{
    gSlider = (UISlider *)sender;
    UIColor *newColor = [UIColor colorWithRed:rSlider.value green:gSlider.value blue:bSlider.value alpha:alphaSlider.value];
    colorView.backgroundColor = newColor;
}


-(void)redSlider:(id)sender
{
    rSlider = (UISlider *)sender;
    UIColor *newColor = [UIColor colorWithRed:rSlider.value green:gSlider.value blue:bSlider.value alpha:alphaSlider.value];
    colorView.backgroundColor = newColor;
}
于 2013-07-15T09:11:16.020 回答
2

使用您的设置颜色方法

-(void)sliderValueChanged:(UISlider*)slider
{
    float r=[[NSString stringWithFormat:@"%.0f",_r.value] floatValue];
    float g=[[NSString stringWithFormat:@"%.0f",_g.value]floatValue];
    float b=[[NSString stringWithFormat:@"%.0f",_b.value]floatValue];

    UIColor *colorToSet=[UIColor colorWithRed:(r/255.0f) green:(g/255.0f) blue:(b/255.0f) alpha:1];
    [_colorLabel setBackgroundColor:colorToSet];
}

检查样品

于 2013-07-15T09:11:03.853 回答
0

为你 Exothug

如果滑块值仅从 0 到 1

-(IBAction)sliderValue:(UISlider*)sender
{
    UIColor *newColor = [UIColor colorWithRed:rSlider.value green:gSlider.value blue:bSlider.value alpha:1];
    _colorLabel.backgroundColor = newColor;
}
于 2013-07-15T11:50:04.627 回答
0
  • 首先在 Main.storyboard 中创建 3 个滑块
  • 其次创建所有滑块动作例如:。Red_slider、Green_slider、Blue_slider
  • 第三创建 3 个标签和它的奥特莱斯

现在在 ViewCotroller 中

在 ViewController.swift 中输入与 Image 相同的代码

于 2017-03-23T05:18:16.210 回答