Cocoa學(xué)習(xí)之路 Slider調(diào)色實(shí)例
Cocoa學(xué)習(xí)之路 Slider調(diào)色實(shí)例是本文要介紹的內(nèi)容,部所屬,直接進(jìn)入話題。這個(gè)開發(fā)實(shí)例是同過鼠標(biāo)拖動(dòng)滑條,調(diào)整三原色數(shù)值,從而改變最終合成的顏色。新人可借此練習(xí) NSTextField,NSSlider,NSColor,NSObject 的使用。
1、新建一個(gè)Cocoa項(xiàng)目SliderColor
需要拖一個(gè)Text Field控件,和四個(gè)Horizontal Slider控件到窗口。這里用Text Field來顯示顏色,Horizontal Slider分別為alpha,red,green,blue。Text Field屬性設(shè)置為只讀(Enabled),背景(Background)為黑色,Horizontal Slider最小值(Minimum)都設(shè)為0,最大值(Miximum)為1,并勾選Continuous(這個(gè)是為了拖動(dòng)時(shí)就改變值),alpha當(dāng)前值(Current)為1,其他的當(dāng)前值都為0,
2、創(chuàng)建Controller(NSObject)
拖一個(gè)NSObject命名為ColorController,創(chuàng)建Outlets為:
- alphaSlider
- blueSlider
- colorField
- greenSlider
- redSlider
- 創(chuàng)建Actions為:
- setAlpha
- setBlue
- setGreen
- setRed
把創(chuàng)建的Outlets和Actions和窗口中的控件進(jìn)行相應(yīng)的綁定(關(guān)聯(lián))后保存ColorController到項(xiàng)目中。
3.、在ColorController中寫代碼
需要在ColorController.h中添加float類型的變量來存儲(chǔ)Slider的值和一個(gè)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方法來進(jìn)行RGB顏色的轉(zhuǎn)換和Text Field的背景顏色設(shè)置,在拖動(dòng)調(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)色實(shí)例的內(nèi)容介紹完了,希望本文對(duì)你有所幫助。
轉(zhuǎn)自 http://www.uedidea.com/cocoa-slider-color.html