2013-07-13 2 views
0

У меня есть UISlider, и я хотел бы сместить 3 UILabels под ним вместе с ползунком, а также обновить их значения, которые зависят от значения ползунка. При перетаскивании ползунка местоположение мигает вперед и назад между тем, где оно должно быть, и обратно в центральное положение. Вставка точки останова в течение очень короткой суммы метод sliderValueDidChange вызывается несколько раз, а sliderValue показывает разные значения. Есть идеи?sliderValueDidChange получение вызова несколько раз

- (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); 
+0

Не вопрос Xcode. -------- IIRC есть 'непрерывное' свойство на 'UISlider', которое вы можете установить в' NO'. –

+0

Но я хочу, чтобы он постоянно обновлялся, чтобы при скольжении его значения ниже скользят вдоль. –

+0

Используете ли вы автоматический макет в своем представлении? – Hejazi

ответ

2

Если вы используете Auto Layout в ваши взгляды пытаются вывести его из строя (инспектор File> Снимите флажок «Включить Autolayout»).

+0

Вау ... Я был (хотя и непреднамеренно). Автоматическое отключение автоотключения. Благодаря! У вас есть объяснение, почему это проблема? –

+1

@JamesPMason, Autolayout - причина, по которой автозапуск является проблемой. Лучше, если он не был включен по умолчанию ... хорошая практика заключается в том, чтобы отключить его во всех новых проектах, если вы не знаете, что вам это нужно (если вы не уверены, что вам это нужно, вам это не нужно). – foundry

+1

Если включена автоматическая компоновка, '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' автоматически устанавливается в соответствии с ограничениями Так что происходило то, что ваш код и автоматический макет меняли положение ярлыков, которые делали флэш, который вы видели. – Hejazi

Смежные вопросы