如何在iOS 中不触摸UISlider 的情况下触发UISlider 的UIControlEventValueChanged?
How to trigger UIControlEventValueChanged of UISlider without touch UISlider in iOS?
我已经创建了一个类似以下代码的 UISlider:
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
的情况下触发 UISlider
的 UIControlEventValueChanged
?
您可以像这样以编程方式触发操作:
[BrightnessSlider sendActionsForControlEvents:UIControlEventValueChanged];
你可以开火
dispatch_async(dispatch_get_main_queue(), ^{
[BrightnessSlider sendActionsForControlEvents: UIControlEventTouchUpInside];
[BrightnessSlider sendActionsForControlEvents: UIControlEventTouchUpInside];
});
关键是确保在主线程中执行。
我已经创建了一个类似以下代码的 UISlider:
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
的情况下触发 UISlider
的 UIControlEventValueChanged
?
您可以像这样以编程方式触发操作:
[BrightnessSlider sendActionsForControlEvents:UIControlEventValueChanged];
你可以开火
dispatch_async(dispatch_get_main_queue(), ^{
[BrightnessSlider sendActionsForControlEvents: UIControlEventTouchUpInside];
[BrightnessSlider sendActionsForControlEvents: UIControlEventTouchUpInside];
});
关键是确保在主线程中执行。