2011-08-13 34 views
4

一切看起来都正确,但还是缺少一些东西。你可以看一下吗?简单的滑块应用程序,快速问题

.M

@synthesize textLabel; 
@synthesize slider; 

- (IBAction)setLabel:(id)sender { 
    int res = [slider value]; 
    NSLog(@"something changed %d", res); 

[textLabel setText:[NSString stringWithFormat:@"%d",[slider value]]]; 
} 

.H

@interface SlidaAppDelegate : NSObject { 
    UILabel *textLabel; 
    UISlider *slider; 
    NSString *text; 
} 

- (IBAction)setLabel:(id)sender; 

@property (nonatomic, retain) IBOutlet UIWindow *window; 
@property (nonatomic, retain) IBOutlet UILabel *textLabel; 
@property (nonatomic, retain) IBOutlet UISlider *slider; 

每当滑块移动,我看到正确的值更新,但是模拟器显示陌生号码 enter image description here

模拟器显示

enter image description here enter image description here

厦门国际银行设置如下:

enter image description here

请告知

* UPDATE < -------------- -------------------------- *

问题就走了,当我改变

[textLabel setText:[NSString stringWithFormat:@"%d",[slider value]]]; 

[textLabel setText:[NSString stringWithFormat:@"%d",res]]; 

我不完全理解为什么它虽然,考虑到

int res = [slider value]; 

如果可能的话,请解释

+0

可能'textLabel'未连接,假设您的意思是它在标签中保持为0。 –

+0

你是否设置滑块的最大/最小? – sidyll

+0

值在哪里保持零? – Mark

回答

4

我敢打赌,价值返回一个浮动是在在0和1之间。因此,当您将它分配给一个int时,它将被舍入为0.

使res为浮点数。

编辑

%d想要一个int,你给它用[滑块值]一个浮动。所以它必须以一种奇怪的方式解释这个价值。请参阅DOC

+0

我也想知道这是如何工作的,因为[滑块值]返回浮动,但这似乎是好的,当分配到int – JAM

+0

所以NSLog输出正确的值,但textLabel不? – Mark

+0

谢谢你!得到它了 – JAM