2013-01-22 129 views
3

我嘗試在按鈕單擊後將值設置爲滑塊, 但它不起作用 - 滑塊不移動。代碼運行正常,沒有錯誤。設置滑塊值

它應該很簡單,但我不明白。 xCode版本4.5.2

謝謝!


這裏我的代碼:

ViewController.h

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController 
@property (weak, nonatomic) IBOutlet UILabel *debugLabel; 
@property (weak, nonatomic) IBOutlet UISlider *slider; 

- (IBAction)slider:(id)sender; 
- (IBAction)ButtonChangeValue:(id)sender; 

@end 

ViewController.m

#import "ViewController.h" 
@interface ViewController() 
@end 

@implementation ViewController 
@synthesize slider; 

... 

- (IBAction)slider:(UISlider *)sender { 
    float value = [sender value]; 
    self.debugLabel.text = [NSString stringWithFormat:@"Value: %f",value]; 
} 

- (IBAction)ButtonChangeValue:(id)sender { 
    slider.value = 90; 
} 
+0

嘗試設置'minimumValue'和'maximumValue'先正確的價值觀 – onmyway133

回答

6

我覺得你的問題是,滑塊接受0.0和1.0之間的值(默認值,與_slider.maximumValue_slider.minimumValue改變它們)。嘗試將值設置爲0.9而不是設置90(如果您的意思是90%)。

如果滑塊更新,但沒有設置動畫,使用:

[_slider setValue:0.9 animated:YES]; 

注意,給你的代碼,你可能需要使用self.slider而不是_slider

+0

非常感謝!是的,我必須直接在代碼中設置最小值和最大值,我將它設置在屬性檢查器中,並且不知何故無法工作。 – miholzi

3

嘗試使用

self.slider.value = 90; 

代替

slider.value = 90; 
1

檢查我Answer

​​
+0

我沒有投票,但OP想要設置按鈕上的滑塊值而不點擊事件。 –

0

由於您使用的界面生成器首先要看看是:在文件的所有者連接到IBOutlets UI組件(滑塊,按鈕)。這是這類問題最常見的來源。

然後檢查滑塊的最小值和最大值(默認值爲0; 1 - 如rdurand所述)。

spider1983也是正確的:因爲滑塊是一個屬性,你可以將它作爲self.slider(或_slider,但不應該使用本例中的最後一個)來解決。

1

要使用slider.value = 90;

你ViewController.h應該是:

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController 
{ 
    UISlider *slider; 
} 
@property (weak, nonatomic) IBOutlet UILabel *debugLabel; 
@property (weak, nonatomic) IBOutlet UISlider *slider; 

- (IBAction)slider:(id)sender; 
- (IBAction)ButtonChangeValue:(id)sender; 

@end 

而且不要忘了在ViewController.m @synthesize slider;爲好。

否則,使用self.slider.value = 90;_slider.value = 90;

0

我想。因爲您沒有提到滑塊的最大值和最小值,所以它將採用0到1的默認最大值和最小值。因此無法將值設置爲90。首先改變它的最大值和最小值是這樣的:

Slider.minimumValue = 1; 
Slider.maximumValue = 100; 

現在試試你的事,

Slider.value =90;