一切看起来都很正确,但却缺少了一些东西。你能看一下吗?
的.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;
每当滑块移动时,我都能正确看到值更新,但模拟器会显示奇怪的数字
模拟器显示
Xib设置如下:
请告知
* UPDATE< ---------------------------------------- *
当我改变时问题就消失了
[textLabel setText:[NSString stringWithFormat:@"%d",[slider value]]];
到
[textLabel setText:[NSString stringWithFormat:@"%d",res]];
我不完全理解为什么会这样,考虑到
int res = [slider value];
如果可能,请解释
答案 0 :(得分:4)
我敢打赌,该值返回一个介于0和1之间的浮点数。因此,当您将其赋值给int时,它会向下舍入为0。
让res成为一个浮动。
修改
%d想要一个int,你给它一个带[滑块值]的浮点数。所以它必须以一种奇怪的方式解释这个价值。见DOC