Cocoa學習之路 Slider調色實例
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