让我们假设UISlider
我设置了一个特定的值。然后,滑块手柄按预期移动到该值。
现在我想让用户来回滑动滑块的手柄,但不要将值设置为UISlider
小于我以编程方式分配给它的值。
因此,例如,我有一个UISlider
最小值为 0,最大值为 100 的值,我将其值设置为 50。我不希望用户滑动“左侧”而不是 50,但在它的“右侧”我想让用户来回滑动手柄。
你如何在 Obj-C 中实现这种行为?
让我们假设UISlider
我设置了一个特定的值。然后,滑块手柄按预期移动到该值。
现在我想让用户来回滑动滑块的手柄,但不要将值设置为UISlider
小于我以编程方式分配给它的值。
因此,例如,我有一个UISlider
最小值为 0,最大值为 100 的值,我将其值设置为 50。我不希望用户滑动“左侧”而不是 50,但在它的“右侧”我想让用户来回滑动手柄。
你如何在 Obj-C 中实现这种行为?
您应该首先确保不断发送更新事件:
mySlider.continuous = YES;
您也可以在故事板/笔尖中执行此操作(正如@fDmitry 所提到的,这是 IB 中的默认状态)。
然后,您必须将滑块链接到IBAction
.h 文件中的一个(通过从 IB 到您的代码的 ctrl 拖动创建一个链接),并将其分配给滑块的“值已更改”事件。这将创建一个这样的方法:
-(IBAction)sliderValueChanged:(id)sender;
以这种方式实现它:
- (IBAction)sliderValueChanged:(id)sender {
float maxValue = 50.0f;
if ([(UISlider*)sender value] > maxValue) {
[(UISlider*)sender setValue:maxValue];
}
}
将您的滑块连接到valueChanged:
行动。你应该像这样实现它:
- (void)mySliderValueChanged:(UISlider *)slider
{
CGFloat myMinValue = 50.0f; // should be a global variable
if(slider.value < myMinValue)
{
slider.value = myMinValue;
}
}
这个其实很简单:)
创建一个动作并将其指定为 UISlider 的 valueChanged 动作的选择器。在该方法中,执行一个简单的检查:如果滑块的值小于 50,则将其设置为 50。
如果您需要任何进一步的帮助,我可以在课后编写一些示例代码。希望能帮助到你!