2017-01-18 1 views
0

私は、次のコードのようなUISlider作成していますiOSのUISliderに触れることなくUISliderのUIControlEventValueChangedをトリガーする方法は?

BrightnessSlider = [[UISlider alloc] initWithFrame:CGRectMake(sliderXpoint, 530, sliderwidth, 20)]; 
BrightnessSlider.minimumValue = 0; 
BrightnessSlider.maximumValue = 100; 
BrightnessSlider.value = 50; 
BrightnessSlider.continuous = YES; 
[BrightnessSlider addTarget:self action:@selector(BrightnessSliderValueChanged:) forControlEvents:UIControlEventValueChanged]; 
[BrightnessSlider addTarget:self action:@selector(BrightnessSliderTouchUpInside:) forControlEvents:UIControlEventTouchUpInside]; 

を私はUISliderをタッチすると、それは次のイベントがトリガされます。

- (void)BrightnessSliderValueChanged:(UISlider *)sender { 
    BrightnessLabel.text = [NSString stringWithFormat:@"%@%.0f", NSLocalizedString(@"Brightness", @""), sender.value]; 
} 

私はタッチUISliderなしUIControlEventValueChangedをトリガーにしたいです。例えば 、私は次のコードのようにUISliderに値を設定した場合:

[BrightnessSlider setValue:(BrightnessSlider.value + 1)]; 

がどのように私はiOSのタッチUISliderなしUISliderUIControlEventValueChangedを誘発するのですか?

+0

オフトピックですが** **インスタンス名(変数名)を小文字にし、大文字を型にしてください。今のところ、 'BrightnessSlider'はクラス名のようです。 –

答えて

2

あなたがプログラムでアクションをトリガーするために、このような何かを行うことができます:あなたは、メインスレッドで実行することを確認している

dispatch_async(dispatch_get_main_queue(), ^{ 
    [BrightnessSlider sendActionsForControlEvents: UIControlEventTouchUpInside]; 
[BrightnessSlider sendActionsForControlEvents: UIControlEventTouchUpInside]; 
}); 

キーを発射することができます

[BrightnessSlider sendActionsForControlEvents:UIControlEventValueChanged];

0

関連する問題