簡體   English   中英

如何從UISlider獲取RGB顏色值

[英]How to get RGB color value from UISlider

我已經嘗試過這段代碼,但工作不正常。在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]];
}

請幫助,如果有人有一些想法..

UIColor方法將每個組件參數的范圍設置為0 to 1 ,因此您需要在傳遞它們之前將滑塊值除以255.0

試試這個(忽略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;
}

使用您的設置顏色方法

-(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];
}

檢查樣品

對於你的Exothug

如果滑塊值僅從0到1

-(IBAction)sliderValue:(UISlider*)sender
{
    UIColor *newColor = [UIColor colorWithRed:rSlider.value green:gSlider.value blue:bSlider.value alpha:1];
    _colorLabel.backgroundColor = newColor;
}
  • 首先在Main.storyboard中創建3個滑塊
  • 第二個創建所有滑塊動作ex:。 Red_slider,Green_slider,Blue_slider
  • 第三個創建3個標簽,它是奧特萊斯

現在在ViewCotroller中

在ViewController.swift中輸入與Image相同的代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM