iphone - Objective C/iPhone - 如何将 UISlider 绑定(bind)到代码

标签 iphone objective-c uilabel uislider

我刚刚开始使用 Objective C,但我已经遇到了一个问题: 当我过去这样做时,我没有遇到任何问题: 我制作了一个新的 UISlider,单击它,按住 CTRL 键将一条蓝线拖到代码中,然后不知何故我能够读取它的值。

但是,我现在遇到了无法再画这些线的问题。 通过乱搞,我设法让按钮正常工作,但 slider 不起作用。 我的 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

(在 iSaturateViewController.m 中):

@synthesize satLabel,satSlider;

-(IBAction) changeSaturation:(id)sender {
    satLabel.text = [[NSString alloc] initWithFormat:@"Saturation:  %d ", (Float32)satSlider.value];
     NSLog(@"%f", satSlider.value);
}

此时 NSLog 显示:0.00000000

此外,我已将 Identity 属性中的 Label 设置为:satSlider( slider )和 satLabel(标签)。

只是为了澄清我的目标:

我希望通过函数changeSaturation 在 UILabel (satLabel) 中显示 slider (satSlider) 值。

我该怎么做?

最佳答案

添加方法声明:

-(IBAction) changeSaturation:(id)sender;

到头文件iSaturateViewController.h

然后,将 UISlider 的“Value Changed”操作分配给您的“changeSaturation”方法。右键单击 slider 并将值更改拖动到文件所有者并连接它们。它应该可以工作。

您也可以尝试这个:

-(IBAction)changeSaturation:(id)sender {

     UISlider *slider = (UISlider *)sender;
     satLabel.text = [NSString stringWithFormat:@"Saturation: %f", slider.value];
     NSLog(@"Saturation: %f", slider.value);
}

关于 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

让我知道它是否有效。

关于iphone - Objective C/iPhone - 如何将 UISlider 绑定(bind)到代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8480598/

相关文章:

iphone - 在标签或 TextView 上显示文本在控制台上显示时花费更多时间

iphone - 是否可以使一个方法顺序运行?

ios - 实现可滚动的水平菜单

ios - 如何在 Objective C 中订阅 youtube channel ?

iphone - iphone 中的套接字编程示例

objective-c - 将 Swift 协议(protocol)传递给 Objective-C 指针

objective-c - 如何在 ARC 下将 objective c 对象的地址获取到 void * volatile * 中?

ios - 如何快速打破 uilabel 线?

iphone - UIBarButtonItem 偏移量?

ios - 升级到 Xcode 7 iOS 9 后 UITableView 单元格显示空白