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