Cocoa學(xué)習(xí)之路 Slider調(diào)色實例
Cocoa學(xué)習(xí)之路 Slider調(diào)色實例是本文要介紹的內(nèi)容,部所屬,直接進入話題。這個開發(fā)實例是同過鼠標拖動滑條,調(diào)整三原色數(shù)值,從而改變最終合成的顏色。新人可借此練習(xí) NSTextField,NSSlider,NSColor,NSObject 的使用。
1、新建一個Cocoa項目SliderColor
需要拖一個Text Field控件,和四個Horizontal Slider控件到窗口。這里用Text Field來顯示顏色,Horizontal Slider分別為alpha,red,green,blue。Text Field屬性設(shè)置為只讀(Enabled),背景(Background)為黑色,Horizontal Slider最小值(Minimum)都設(shè)為0,最大值(Miximum)為1,并勾選Continuous(這個是為了拖動時就改變值),alpha當前值(Current)為1,其他的當前值都為0,
2、創(chuàng)建Controller(NSObject)
拖一個NSObject命名為ColorController,創(chuàng)建Outlets為:
- alphaSlider
- blueSlider
- colorField
- greenSlider
- redSlider
- 創(chuàng)建Actions為:
- setAlpha
- setBlue
- setGreen
- setRed
把創(chuàng)建的Outlets和Actions和窗口中的控件進行相應(yīng)的綁定(關(guān)聯(lián))后保存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顏色的轉(zhuǎn)換和Text Field的背景顏色設(shè)置,在拖動調(diào)用updateColor。完整代碼如下:
- #import "ColorController.h"
- @implementation ColorController
- - (IBAction)setAlpha:(id)sender {
- [self updateColor]; //調(diào)用updateColor方法
- }
- - (IBAction)setBlue:(id)sender {
- [self updateColor];
- }
- - (IBAction)setGreen:(id)sender {
- [self updateColor];
- }
- - (IBAction)setRed:(id)sender {
- [self updateColor];
- }
- - (void)updateColor {
- //獲取RGB和Alpha值并賦值給變量
- redValue = [轉(zhuǎn)自redSlider floatValue];
- greenValue = [greenSlider floatValue];
- blueValue = [blueSlider floatValue];
- alphaValue = [alphaSlider floatValue];
- //根據(jù)獲取的RGB和Alpha值創(chuàng)建顏色(NSColor)
- NSColor *uColor = [NSColor colorWithCalibratedRed:redValue green:greenValue blue:blueValue alpha:alphaValue];
- //設(shè)置TextField(colorField)背景顏色
- [colorField setBackgroundColor:uColor];
- }
- @end
小結(jié):Cocoa學(xué)習(xí)之路 Slider調(diào)色實例的內(nèi)容介紹完了,希望本文對你有所幫助。
轉(zhuǎn)自 http://www.uedidea.com/cocoa-slider-color.html