2013-05-06 52 views
-1

我已經有一個滑塊來控制文本標籤的輸出。iOS使用步進器控制滑塊值和文本標籤值

-(IBAction)mySlider:(UISlider *)sender 
{ 
    _myTextLabel.text = [NSString stringWithFormat:@"%i", (int) sender.value]; 
} 

但是,我也想要一個步進器能夠改變滑塊的位置。所以,如果滑塊已設置爲50,並且文本標籤顯示爲50,我希望步進器增加到51,52,53等。有沒有人知道代碼要做到這一點?謝謝!

+0

你的問題是什麼? – rmaddy 2013-05-06 03:49:08

+0

所以,如果我正確閱讀這個,你幾乎想要UISlider更新標籤,然後步進更新滑塊? – user2277872 2013-05-06 03:50:54

+0

是的,這是正確的,我的問題是這樣做的代碼是什麼......基本上,如果用戶試圖選擇一個特定的數字,他們可以使用滑塊作爲粗調,然後使用增量器得到確切的數字 – jake9115 2013-05-06 03:51:50

回答

3

您需要保留參考UISlider。使用valueChanged事件爲UIStepper製作處理程序。兩個步進和滑塊做

需要某些設置

設置兩個步進和滑塊分別作爲0和100的最小值和最大值。將步進器的步長設置爲1.設置兩個步進器和滑動器的默認值相同。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.slider.minimumValue = 0; 
    self.slider.maximumValue = 100; 

    self.stepper.minimumValue = 0; 
    self.stepper.maximumValue = 100; 
    self.stepper.stepValue = 1; 

    self.slider.value = 10; 
    self.stepper.value = 10; 

} 

- (IBAction)stepperValueChanged:(UIStepper *)sender { 

    [self.slider setValue:sender.value]; 

    self.myTextLabel.text = [@((int)sender.value) stringValue]; 

} 

- (IBAction)sliderValueChanged:(UISlider *)sender { 

    [self.stepper setValue:sender.value]; 

    self.myTextLabel.text = [@((int)sender.value) stringValue]; 
} 
+0

感謝您的代碼,但我有一個快速的newb問題:我如何爲UISlider做參考?每次我爲滑塊創建一個方法時,我都無法在他們的{}括號之外引用它們,但我不知道如何指向它們。 – jake9115 2013-05-06 03:59:36

+0

您只需在.h文件中執行@property (非原子,保留)UISlider * ;在結尾和}之間,然後在你的.m文件中,正確執行類型合成;這將創建getter/setter函數來使用,以便您可以在{}之外使用它們。在它們前面執行和合成兩個@ – user2277872 2013-05-06 04:03:10

+0

只需連接來自IB的控件,將控件的屬性與IBOutlet連接即可。上述步進,分,最大和步進的設置可以從IB本身進行設置。 – Anupdas 2013-05-06 04:03:11