laa*_*rsk 2 iphone objective-c uilabel uislider
我刚刚开始使用Objective C,但我已经遇到了一个问题:当我在过去这样做时,我没有遇到任何问题:我制作了一个新的UISlider,点击它,CTRL将一条蓝线拖到了代码,然后以某种方式我能够读取它的值.
但是,我现在遇到的问题是我不能再画那些线了.通过搞乱我设法让按钮工作,但滑块不起作用.我的Mainwindow.xib有iSaturateViewController类,iSaturateViewController.xib已经有了整个界面.
如何在不能绘制该线的情况下使UISlider工作?
我现在怎么做:(在iSaturateViewController.h中)
#import <UIKit/UIKit.h>
@interface iSaturateViewController : UIViewController {
UISlider * satSlider;
UILabel * satLabel;
}
@property (nonatomic, retain) IBOutlet UISlider * satSlider;
@property (nonatomic, retain) UILabel * satLabel;
-(IBAction) changeSaturation:(id) sender;
@end
Run Code Online (Sandbox Code Playgroud)
(在iSaturateViewController.m中):
@synthesize satLabel,satSlider;
-(IBAction) changeSaturation:(id)sender {
satLabel.text = [[NSString alloc] initWithFormat:@"Saturation: %d ", (Float32)satSlider.value];
NSLog(@"%f", satSlider.value);
}
Run Code Online (Sandbox Code Playgroud)
在NSLog显示的那一刻:0.00000000
另外,我将Identity属性中的Label设置为:satSlider(slider)和satLabel(label).
只是为了澄清我的目标:
我希望滑块(satSlider)值通过函数changeSaturation显示在UILabel(satLabel)中.
我怎样才能做到这一点?
添加方法声明:
-(IBAction) changeSaturation:(id)sender;
Run Code Online (Sandbox Code Playgroud)
到头文件iSaturateViewController.h
然后,将UISlider 的Value Changed操作分配给changeSaturation方法.右键单击滑块并将Value Changed拖动到文件所有者并连接它们.它应该工作.
你也可以试试这个:
-(IBAction)changeSaturation:(id)sender {
UISlider *slider = (UISlider *)sender;
satLabel.text = [NSString stringWithFormat:@"Saturation: %f", slider.value];
NSLog(@"Saturation: %f", slider.value);
}
Run Code Online (Sandbox Code Playgroud)
关于UILabel - 添加IBOutlet并在Interface Builder中连接它.界面应该是这样的:
#import <UIKit/UIKit.h>
@interface iSaturateViewController : UIViewController {
IBOutlet UISlider * satSlider;
IBOutlet UILabel * satLabel;
}
@property (nonatomic, retain) IBOutlet UISlider * satSlider;
@property (nonatomic, retain) IBOutlet UILabel * satLabel;
-(IBAction) changeSaturation:(id) sender;
@end
Run Code Online (Sandbox Code Playgroud)
如果有效,请告诉我.