CAStepper(步進(jìn)控件)

2018-09-08 15:36 更新

類說明

CAStepper是步進(jìn)控件,它的作用和CASlider非常類似,只是CAStepper的改變的固定值,它包括左右兩部分,左部為減少,右部為增加。


CAStepper 屬性(點擊查看方法介紹)

屬性說明
Continuous設(shè)置連續(xù)
AutoRepeat設(shè)置自動重復(fù)
Wraps設(shè)置是否可在最大值和最小值循環(huán)
Value設(shè)定值
MinValue設(shè)定最小值
MaxValue設(shè)定最大值
StepValue設(shè)置步進(jìn)值
TouchEffect設(shè)置接觸效應(yīng)


CAStepper 方法(點擊查看方法介紹)

方法說明
create創(chuàng)建,默認(rèn)Frame為(0,0,0,0)
createWithFrame創(chuàng)建,并指定其Frame,默認(rèn)Frame為(0,0,0,0)
createWithCenter創(chuàng)建,并指定其Center,默認(rèn)Center為(0,0,0,0)
setBackgroundImage設(shè)置背景圖像
getBackgroundImageForState獲取背景圖像
setIncrementImage設(shè)置右部增加部分的背景
getIncrementImageForState獲取右部增加部分的背景
setDecrementImage設(shè)置左部減少部分的背景
getDecrementImageForState獲取左部減少部分的背景
addTarget添加回調(diào)事件
removeTarget刪除回調(diào)事件
removeAllTargets刪除所有回調(diào)事件
init初始化
initWithFrame初始化,并指定其Frame
initWithCenter初始化,并指定其Center
onEnter輸入
onExit退出
visit訪問
setDividerColor設(shè)置分頻器顏色
getDividerColor獲取分頻器顏色
setTailorImageAtIndex設(shè)置索引裁剪圖像
getTailorImageAtIndex獲取索引截取圖像


我們嘗試這用CAStepper去控制一張圖片的旋轉(zhuǎn),每次旋轉(zhuǎn)30度。
同樣我們首先要在FirstViewController.h中添加一個監(jiān)聽函數(shù),來監(jiān)聽CAStepper的值的變化。

//監(jiān)聽函數(shù)
    void stepperValueChange(CAControl* control, DPoint point);

然后我們在FirstViewController.cpp添加CAStepper控件并為其綁定監(jiān)聽。

void FirstViewController::viewDidLoad()
{
    // Do any additional setup after loading the view from its nib.
    DRect winRect = this->getView()->getBounds();
    DSize size = winRect.size;
     
    //創(chuàng)建CAImageView用于選擇
    CAImageView* imageView = CAImageView::createWithImage(CAImage::create("HelloWorld.png"));
    imageView->setFrame(winRect);
    imageView->setTag(1);
    this->getView()->addSubview(imageView);
    CAStepper* stepper = CAStepper::createWithCenter(DRect(size.width * 0.5, size.height * 0.6, 200, 200));
     
    //最大值
    stepper->setMaxValue(360);
     
    //最小值
    stepper->setMinValue(0);
     
    //每此變化值(步進(jìn)值)
    stepper->setStepValue(30);
     
    //設(shè)置監(jiān)聽
    stepper->addTarget(this, CAControl_selector(FirstViewController::stepperValueChange));
     
    //是否開啟觸摸特效
    stepper->setTouchEffect(true);
     
    //釋放開車長按效果(flase必須一次一次按,true可以按著不懂變化。默認(rèn)為true)測試無效
    stepper->setAutoRepeat(true);
     
    //設(shè)置是否可在最大值和最小值循環(huán)(當(dāng)增長到最大值時,再點增大則變成最小值。最小值再減少變成最大值)
    stepper->setWraps(true);
     
    //添加到屏幕
    this->getView()->addSubview(stepper);
}

void FirstViewController::stepperValueChange(CAControl* control, DPoint point)
{
    //獲得stepper對象
    CAStepper* stepper = (CAStepper*)control;
     
    //根據(jù)tag獲得imageView
    CAImageView* imageView = (CAImageView*)this->getView()->getSubviewByTag(1);
     
    //獲得stepper的當(dāng)前值
    float zoomValue = stepper->getValue();
     
    //設(shè)置旋轉(zhuǎn)角度
    imageView->setRotation(zoomValue);
}

這樣我們就可以通過增減CAStepper的值來控制CAImageView的旋轉(zhuǎn)角度了。


CAStepper 屬性說明

Continuous

類型:bool

解釋:設(shè)置連續(xù),set/get{}。


AutoRepeat

類型:bool

解釋:設(shè)置自動重復(fù),set/get{}。


Wraps

類型:bool

解釋:設(shè)置是否可在最大值和最小值循環(huán),set/get{}。


Value

類型:double

解釋:設(shè)定值,set/get{}。


MinValue

類型:double

解釋:設(shè)定最小值,set/get{}。


MaxValue

類型:double

解釋:設(shè)定最大值。set/get{}。


StepValue

類型:double

解釋:設(shè)置步進(jìn)值。set/get{}。


TouchEffect

類型:bool

解釋:設(shè)置接觸效應(yīng),set/get{}。


CAStepper 方法說明

static CAStepper* create();

返回值:static CAStepper

參數(shù):

解釋:創(chuàng)建,默認(rèn)Frame為(0,0,0,0)


static CAStepper* createWithFrame(const CCRect& rect);

返回值:static CAStepper

參數(shù):

類型
參數(shù)名說明
CCRect&rect區(qū)域大小

解釋:創(chuàng)建,并指定其Frame,默認(rèn)Frame為(0,0,0,0)


static CAStepper* createWithCenter(const CCRect& rect);

返回值:static CAStepper

參數(shù):

類型
參數(shù)名說明
CCRectrect中心點的位置及

解釋:創(chuàng)建,并指定其Center,默認(rèn)Center為(0,0,0,0)


void setBackgroundImage(CAImage* image, CAControlState state);

返回值:void

參數(shù):

類型
參數(shù)名說明
CAImage*image圖像
CAControlStatestate控制狀態(tài)

解釋:設(shè)置背景圖像


CAImage* getBackgroundImageForState(CAControlState state);

返回值:CAImage*

參數(shù):

類型
參數(shù)名說明
CAControlStatestate控制狀態(tài)

解釋:獲取背景圖像


void setIncrementImage(CAImage* image, CAControlState state);

返回值:void

參數(shù):

類型
參數(shù)名說明
CAImage*image圖像
CAControlStatestate控制狀態(tài)

解釋:設(shè)置右部增加部分的背景 


CAImage* getIncrementImageForState(CAControlState state);

返回值:CAImage*

參數(shù):

類型
參數(shù)名說明
CAControlStatestate控制狀態(tài)

解釋:獲取右部增加部分的背景 


void setDecrementImage(CAImage* image, CAControlState state);

返回值:void

參數(shù):

類型
參數(shù)名說明
CAImage*image圖像
CAControlStatestate控制狀態(tài)

解釋:設(shè)置左部減少部分的背景


CAImage* getDecrementImageForState(CAControlState state);

返回值:CAImage*

參數(shù):

類型
參數(shù)名說明
CAControlStatestate控制狀態(tài)

解釋:獲取左部減少部分的背景


virtual void addTarget(CAObject* target, SEL_CAControl selector);

返回值:virtual void

參數(shù):

類型參數(shù)名說明
CAObject*target目標(biāo)
SEL_CAControlselector選擇器

解釋:添加回調(diào)事件


virtual void removeTarget(CAObject* target, SEL_CAControl selector);

返回值:virtual void

參數(shù):

類型參數(shù)名說明
CAObject*target目標(biāo)
SEL_CAControlselector選擇器

解釋:刪除回調(diào)事件


virtual void removeAllTargets();

返回值:virtual void

參數(shù):

解釋:刪除所有回調(diào)事件


virtual bool init();

返回值:virtual bool

參數(shù):

解釋:初始化


virtual bool initWithFrame(const DRect& rect);

返回值:virtual bool

參數(shù):

類型參數(shù)名說明
const DRect&rect區(qū)域大小

解釋:初始化,并指定其Frame


virtual bool initWithCenter(const DRect& rect);

返回值:virtual bool

參數(shù):

類型參數(shù)名說明
const DRect&rect中心點的位置及大小

解釋:初始化,并指定其Center


virtual void onEnter();

返回值:virtual void

參數(shù):

解釋:輸入


virtual void onExit();

返回值:virtual void

參數(shù):

解釋:退出


virtual void visit();

返回值:virtual void

參數(shù):

解釋:訪問


void setDividerColor(CAColor4B color);

返回值:void

參數(shù):

類型參數(shù)名說明
CAColor4Bcolor顏色

解釋:設(shè)置分頻器顏色


CAColor4B getDividerColor();

返回值:CAColor4B

參數(shù):

解釋:獲取分頻器顏色


void setTailorImageAtIndex(int index);

返回值:void

參數(shù):

類型參數(shù)名說明
intindex索引

解釋:設(shè)置索引裁剪圖像


CAView* getTailorImageAtIndex(int index);

返回值:CAView*

參數(shù):

類型參數(shù)名說明
intindex索引

解釋:獲取索引截取圖像

      



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號