简单的滑块应用,快速问题

时间:2011-08-13 00:01:14

标签: objective-c

一切看起来都很正确,但却缺少了一些东西。你能看一下吗?

的.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

Xib设置如下:

enter image description here

请告知

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

当我改变时问题就消失了

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

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

我不完全理解为什么会这样,考虑到

int res = [slider value]; 

如果可能,请解释

1 个答案:

答案 0 :(得分:4)

我敢打赌,该值返回一个介于0和1之间的浮点数。因此,当您将其赋值给int时,它会向下舍入为0。

让res成为一个浮动。

修改

%d想要一个int,你给它一个带[滑块值]的浮点数。所以它必须以一种奇怪的方式解释这个价值。见DOC