sliderValueDidChange被多次调用

时间:2013-07-13 19:46:34

标签: ios objective-c uislider

我有一个UISlider,我想在它下方滑动3个UILabel和滑块,并更新它们的值,这些值取决于滑块值。拖动滑块时,位置在应该位于的位置之间来回闪烁并返回到中心位置。插入一个非常微小的断点,sliderValueDidChange方法被多次调用,sliderValue显示不同的值。有任何想法吗?

- (IBAction)sliderValueDidChange:(UISlider *)sender {
// Update the labels
float sliderValue = sender.value;
percentSplitLabel.text = [NSString stringWithFormat:@"%.0f%@", sliderValue * 100, @"%"];
themSplitValueLabel.text = [NSString stringWithFormat:@"%@%.2f", @"$", totalToBeAddedToTabValue];
meSplitValueLabel.text = [NSString stringWithFormat:@"%@%.2f", @"$", totalBillValue - totalToBeAddedToTabValue];

// Reposition the numbers below
CGRect sliderFrame = splitBillSlider.frame;
percentSplitLabel.center = CGPointMake(sliderFrame.origin.x - sliderFrame.size.width/2.0 + sliderFrame.size.width * sliderValue + 150, percentSplitLabel.center.y);
themSplitValueLabel.center = CGPointMake(percentSplitLabel.center.x + percentSplitLabel.frame.size.width + 10, percentSplitLabel.center.y);
meSplitValueLabel.center = CGPointMake(percentSplitLabel.center.x - percentSplitLabel.frame.size.width, percentSplitLabel.center.y);

1 个答案:

答案 0 :(得分:2)

如果您在视图中使用自动布局,请尝试将其禁用(文件检查器>取消选中“启用Autolayout”)。