Cocoa学习之路 Slider调色实例是本文要介绍的内容,部所属,直接进入话题。这个开发实例是同过鼠标拖动滑条,调整三原色数值,从而改变最终合成的颜色。新人可借此练习 NSTextField,NSSlider,NSColor,NSObject 的使用。
1、新建一个Cocoa项目SliderColor
需要拖一个Text Field控件,和四个Horizontal Slider控件到窗口。这里用Text Field来显示颜色,Horizontal Slider分别为alpha,red,green,blue。Text Field属性设置为只读(Enabled),背景(Background)为黑色,Horizontal Slider最小值(Minimum)都设为0,最大值(Miximum)为1,并勾选Continuous(这个是为了拖动时就改变值),alpha当前值(Current)为1,其他的当前值都为0,
2、创建Controller(NSObject)
拖一个NSObject命名为ColorController,创建Outlets为:
- alphaSlider
- blueSlider
- colorField
- greenSlider
- redSlider
- 创建Actions为:
- setAlpha
- setBlue
- setGreen
- setRed
把创建的Outlets和Actions和窗口中的控件进行相应的绑定(关联)后保存ColorController到项目中。
3.、在ColorController中写代码
需要在ColorController.h中添加float类型的变量来存储Slider的值和一个void类型的updateColor方法来更新颜色。最终代码如下:
- #import <Cocoa/Cocoa.h>
- @interface ColorController : NSObject {
- IBOutlet NSSlider *alphaSlider;
- IBOutlet NSSlider *blueSlider;
- IBOutlet NSTextField *colorField;
- IBOutlet NSSlider *greenSlider;
- IBOutlet NSSlider *redSlider;
- float redValue;
- float blueValue;
- float greenValue;
- float alphaValue;
- }
- - (IBAction)setAlpha:(id)sender;
- - (IBAction)setBlue:(id)sender;
- - (IBAction)setGreen:(id)sender;
- - (IBAction)setRed:(id)sender;
- - (void)updateColor;
- @end
在ColorController.m中添加updateColor方法来进行RGB颜色的转换和Text Field的背景颜色设置,在拖动调用updateColor。完整代码如下:
- #import "ColorController.h"
- @implementation ColorController
- - (IBAction)setAlpha:(id)sender {
- [self updateColor]; //调用updateColor方法
- }
- - (IBAction)setBlue:(id)sender {
- [self updateColor];
- }
- - (IBAction)setGreen:(id)sender {
- [self updateColor];
- }
- - (IBAction)setRed:(id)sender {
- [self updateColor];
- }
- - (void)updateColor {
- //获取RGB和Alpha值并赋值给变量
- redValue = [转自redSlider floatValue];
- greenValue = [greenSlider floatValue];
- blueValue = [blueSlider floatValue];
- alphaValue = [alphaSlider floatValue];
- //根据获取的RGB和Alpha值创建颜色(NSColor)
- NSColor *uColor = [NSColor colorWithCalibratedRed:redValue green:greenValue blue:blueValue alpha:alphaValue];
- //设置TextField(colorField)背景颜色
- [colorField setBackgroundColor:uColor];
- }
- @end
小结:Cocoa学习之路 Slider调色实例的内容介绍完了,希望本文对你有所帮助。
转自 http://www.uedidea.com/cocoa-slider-color.html