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

メソッドは range 内のUIColor各コンポーネント パラメータを受け取る0 to 1ため、スライダーの値を で割って255.0から渡す必要があります。

于 2013-07-15T09:10:12.747 に答える
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 に答える