使用UISlider移动标签

时间:2012-05-23 12:48:39

标签: iphone ios uislider

我要求我必须使用UISlider在标签上移动值。我尝试使用此代码

[slider addTarget:self action:@selector(dragMoving:withEvent:) forControlEvents: UIControlEventTouchDragInside];

- (void)dragMoving:(UIControl *)c withEvent:ev {  
    UITouch *touch = [[ev allTouches] anyObject];
    CGPoint touchPoint = [touch locationInView:self.view];
     sliderLabe.frame = CGRectMake(touchPoint.x,250, 270, 40);
}

sliderLabel就在滑块下方,但是当我拖得更快时它会给我奇怪的结果但是如果我慢慢移动mu滑块它会正常工作。

1 个答案:

答案 0 :(得分:3)

当滑块移动时,它还会计算它的新值并调用valueChanged。这可能会干扰您额外的UIControlEventTouchDragInside处理程序。

如果slider.continuous设置为YES,您可以尝试将标签移动代码移至valueChanged处理程序。

当然触摸位置在此方法中是未知的,因此需要根据滑块的其他属性计算:frame.origin.xframe.size.widthminimumValuemaximumValue和{{ 1}}