禁用UISlider滑动,但仍允许它接收UIControlEventTouchDown

时间:2013-06-03 22:01:14

标签: iphone ios cocoa-touch uislider

有没有办法禁止UISlider滑动,但要让其UIControlEventTouchDown开火?我认为可以做的一种方法是将滑块起始值设置为与结束值相同,但我想避免这样做。有谁知道更好的方法吗?

1 个答案:

答案 0 :(得分:4)

我建议为你的UISlider设置userInteractionEnabled = NO,并添加一个隐藏按钮来处理TouchDown

UIButton *btnSlider = [UIButton buttonWithType:UIButtonTypeCustom];
btnSlider.frame = CGRectMake(slider.frame.origin.x, slider.frame.origin.y,         slider.frame.size.width, slider.frame.size.height);
[btnSlider addTarget:self action:@selector(sliderTouched) forControlEvents:UIControlEventTouchDown];
btnSlider.backgroundColor = [UIColor clearColor];

[myView addSubview:btnSlider];

然后根据您想要启用滑块的条件,您可以启用它并禁用按钮。