2013-03-29 52 views
3

我遵循的user2207904我希望我的UILabel按照我UISlider值

在viewDidLoad中的代碼創建20個滑塊和20個標籤

然後我20個標籤把我的推子值(label.text = [的NSString stringWithFormat:@ 「%i」 的,slvalue];

但像他這樣,如果我將我的標籤不遵循我的推杆值...

我該怎麼做我的標籤如下我的推子值?

我的代碼

- (void)viewDidLoad 
{ 
    [super viewDidLoad];  
    for(int i=0; i< 20; i++){ 
    //sliders 
    UISlider *slider = [[[UISlider alloc] initWithFrame:CGRectMake(1+i*50, 450, 300, 10)] autorelease]; 
    slider.minimumValue = 1; 
    slider.maximumValue = 100; 
    slider.continuous = YES; 
    [self.view addSubview:slider]; 
    slider.transform = CGAffineTransformRotate(slider.transform, 270.0/180*M_PI); 
    [slider setThumbImage:thumbImage0 forState:UIControlStateNormal]; 
    [slider release]; 
    // label 
    UILabel *label = [[UILabel alloc] initWithFrame: CGRectMake(1+i*50, 640, 40, 15)]; 
    int slvalue = slider.value; 
    label.text= [NSString stringWithFormat:@"%i", slvalue]; 
    [self.view addSubview:label]; 
    [label release]; 

} 

新問題:

mofified

我這樣做:

我把一個IBAction爲我FirstViewController.m

- (IBAction)sliderUpdate:(UISlider *)sender { 
self.label.text = [NSString stringWithFormat:@"%g", sender.value]; 
} 

,並把這個在我viewDidLoad中(FirstViewController.m)

{ 
[super viewDidLoad];  
for(int i=0; i< 20; i++){ 
//sliders 
UISlider *slider = [[[UISlider alloc] initWithFrame:CGRectMake(1+i*50, 450, 300, 10)] autorelease]; 
slider.minimumValue = 1; 
slider.maximumValue = 100; 
slider.continuous = YES; 
[slider addTarget:self action:@selector(sliderUpdate:) forControlEvents:UIControlEventValueChanged]; 
[self.view addSubview:slider]; 
slider.transform = CGAffineTransformRotate(slider.transform, 270.0/180*M_PI); 
[slider setThumbImage:thumbImage0 forState:UIControlStateNormal]; 
[slider release]; 
// label 
UILabel *label = [[UILabel alloc] initWithFrame: CGRectMake(1+i*50, 640, 40, 15)]; 
int slvalue = slider.value; 
label.text= [NSString stringWithFormat:@"%i", slvalue]; 
[self.view addSubview:label]; 
[label release]; 
} 

我有這個錯誤在我(IBAction爲)sliderUpdate:在'FirstViewController *'類型的對象上未找到屬性「標籤」

回答

1

如果您控制從滑塊拖動到UIViewControll的實施呃,它會建立一個IBAction方法,當值被改變的時候被調用。在這種方法中,只需設置標籤的文字即可。無需製作特殊的子類。

的代碼最終會看起來像這樣:

- (IBAction)setLabel:(UISlider *)sender { 
    self.myLabel.text = [NSString stringWithFormat:@"%g", sender.value]; 
} 

編輯:這聽起來像你編程使滑塊。在這種情況下,你將不得不打電話給addTarget:action:forControlEvents:來設置目標動作。 (控制事件將是UIControlEventValueChanged。)

另外,就知道什麼滑塊轉到哪個標籤,您可以創建2個NSArrays,其中一個數組中的第i個滑塊與另一個數組中的第i個標籤相匹配。

+0

嗯,我想我的答案有點太複雜。應該更多地閱讀這個。 –

+0

檢查我的第一條消息(修改) – socorro

+0

這就是爲什麼我建議將標籤放入數組中。如果您不將標籤存儲在某種財產中,那麼您將無法訪問它們。如果我是你,我會爲你的'FirstViewController'添加一個'@property(strong,nonatomic)NSMutableArray *標籤',並用你的標籤填充它。 –

0

拖放或programetically創建一個的UILabel和UISlider,然後在滑塊用這個滑塊操作

-(IBAction)slider:(id)sender { 
NSString *s=[NSString stringWithFormat:@"%f",slider.value]; 
[label setText:s]; } 

所以每當你改變你的滑塊標籤值也changes.I希望你得到它RYT?