CASlider(滑動(dòng)條)

2018-09-08 15:37 更新

類說(shuō)明

CASlider是滾動(dòng)條控件,主要作用是方便數(shù)值調(diào)節(jié),如音量大小控制、縮放視圖等操作。


CASlider 屬性(點(diǎn)擊查看方法介紹)

屬性說(shuō)明
TouchClick觸摸點(diǎn)擊
Value
MinValue最小值
MaxValue最大值
TrackHeight滾動(dòng)條高度
MinTrackTintImage設(shè)置前景圖片(已經(jīng)劃過(guò)的部分) 
MaxTrackTintImage設(shè)置后景圖片(未劃過(guò)的部分) 
ThumbTintImage滾動(dòng)塊的圖片


CASlider 方法(點(diǎn)擊查看方法介紹)

方法說(shuō)明
createWithFrame創(chuàng)建,并指定其Frame,默認(rèn)Frame為(0,0,0,0)
createWithCenter創(chuàng)建,并指定其Center,默認(rèn)Center為(0,0,0,0)
addTarget添加回調(diào)事件
addTargetForTouchUpSide添加回調(diào)事件的觸摸
removeTarget刪除回調(diào)事件
setValue設(shè)定值
setMinValue設(shè)定最小值
setMaxValue設(shè)定最大值
setTrackHeight設(shè)置滾動(dòng)條高度
setMinTrackTintImage設(shè)置前景圖片(已經(jīng)劃過(guò)的部分) 
setMaxTrackTintImage設(shè)置后景圖片(未劃過(guò)的部分) 
setThumbTintImage設(shè)置滾動(dòng)塊的圖片
initWithFrame初始化r,并指定其Frame
initWithCenter初始化,并指定其Center
ccTouchBegan觸摸事件開(kāi)始時(shí)的回調(diào)函數(shù)
ccTouchMoved觸摸事件中觸點(diǎn)移動(dòng)時(shí)的回調(diào)函數(shù)
ccTouchEnded觸摸事件結(jié)束時(shí)的回調(diào)函數(shù)
layoutSubViews子視圖布局


我們可以通過(guò)設(shè)置CASlider的最大值和最小值來(lái)確定其值的范圍,可以通過(guò)設(shè)置圖片改變滾動(dòng)條的樣子,我們這里就利用CASlider來(lái)控制一張圖片的縮放大小,來(lái)演示一下CASlider的使用方法:
首先我們?cè)贔irstViewController.h中添加一個(gè)監(jiān)聽(tīng)函數(shù),用于監(jiān)聽(tīng)CASlider的值的變化。

//監(jiān)聽(tīng)函數(shù)
    void zoomViewBySliderValue(CAControl* control, DPoint point)

然后我們?cè)贔irstViewController.cpp中去實(shí)現(xiàn)CASlider來(lái)控制CAImageView的縮放變化。


void FirstViewController::viewDidLoad()
{
    //獲得屏幕大小
    CCSize size = this->getView()->getBounds().size;
     
    //創(chuàng)建CAImageView
    CAImageView* imageView = CAImageView::createWithImage(CAImage::create("HelloWorld.png"));
    imageView->setCenter(DRect(size.width*0.5, size.height*0.5, 800, 1200));
     
    //設(shè)置tag
    imageView->setTag(1);
    
    //添加
    this->getView()->addSubview(imageView);
     
    //創(chuàng)建CASlider
    CASlider* slider = CASlider::createWithCenter(DRect(size.width*0.5, size.height*0.2, size.width*0.8, 20));
     
    //綁定監(jiān)聽(tīng)
    slider->addTarget(this, CAControl_selector(FirstViewController::zoomViewBySliderValue));
    
    //添加
    this->getView()->insertSubview(slider, 1);
     
    //創(chuàng)建CALabel
    CALabel* label = CALabel::createWithCenter(DRect(size.width*0.5, size.height*0.1, size.width*0.8, 40));
    
    //設(shè)置文本
    char temptext[40];
    sprintf(temptext, "ScaleValue:%0.2f", slider->getValue());
    label->setText(temptext);
     
    //設(shè)置居中
    label->setTextAlignment(CATextAlignmentCenter);
    label->setVerticalTextAlignmet(CAVerticalTextAlignmentCenter);
    
    //設(shè)置Tag
    label->setTag(3);
    this->getView()->addSubview(label);
}
 
void FirstViewController::zoomViewBySliderValue(CAControl* control, DPoint point)
{
    //獲得silder對(duì)象
    CASlider* slider = (CASlider*)control;
     
    //獲得silder的當(dāng)前值
    float zoomValue = slider->getValue();
     
    //根據(jù)tag值獲得image
    CAImageView* image = (CAImageView*)this->getView()->getSubviewByTag(1);
     
    //設(shè)置image的縮放比
    image->setScale(zoomValue);
     
    //根據(jù)tag獲得CALabel
    CALabel* label = (CALabel*)this->getView()->getSubviewByTag(3);
     
    //設(shè)置文本
    char temptext[40];
    sprintf(temptext, "ScaleValue:%0.2f", slider->getValue());
    label->setText(temptext);
}

我們通過(guò)addTarget來(lái)為CASlider綁定一個(gè)監(jiān)聽(tīng),我們又在監(jiān)聽(tīng)函數(shù)中,根據(jù)CASlider的變化來(lái)改變CAImageView的縮放值,同樣的原理我們也可以進(jìn)行其它數(shù)值的改變,大家舉一反三可以自己去嘗試一下。


CASlider 屬性說(shuō)明

TouchClick

類型:bool

解釋:觸摸點(diǎn)擊。is{}。

    

Value     

類型:float

解釋:值。get{}。


MinValue 

類型:float

解釋:最小值。get{}。


MaxValue  

類型:float

解釋:最大值。get{}。


TrackHeight 

類型:float

解釋:滾動(dòng)條高度。get{}。


MinTrackTintImage

類型:CAImage*

解釋:設(shè)置前景圖片(已經(jīng)劃過(guò)的部分) 。get{}。


MaxTrackTintImage

類型:CAImage*

解釋:設(shè)置后景圖片(未劃過(guò)的部分) 。get{}。


ThumbTintImage

類型:CAImage*

解釋:滾動(dòng)塊的圖片 。get{}。


CASlider 方法說(shuō)明

static CASlider* createWithFrame(const DRect& rect);

返回值:static CASlider

參數(shù):

類型
參數(shù)名說(shuō)明
DRectrect區(qū)域大小

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


static CASlider* createWithCenter(const DRect& rect);

返回值:static CASlider

參數(shù):

類型
參數(shù)名說(shuō)明
DRectrect中心點(diǎn)的位置及大小

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


void addTarget(CAObject* target, SEL_CAControl selector);

返回值:void

參數(shù):

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

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


void addTargetForTouchUpSide(CAObject* target, SEL_CAControl selector);

返回值:void

參數(shù):

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

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


void removeTarget(CAObject* target, SEL_CAControl selector);

返回值:void

參數(shù):

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

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


virtual void setValue(float value);

返回值:virtual void

參數(shù):

類型
參數(shù)名說(shuō)明
floatvalue

解釋:設(shè)定值


virtual void setMinValue(float minValue);

返回值:virtual void

參數(shù):

類型
參數(shù)名說(shuō)明
floatminValue最小值

解釋:設(shè)定最小值


virtual void setMaxValue(float maxValue);

返回值:virtual void

參數(shù):

類型
參數(shù)名說(shuō)明
floatmaxValue最大值

解釋:設(shè)定最大值


virtual void setTrackHeight(float trackHeight);

返回值:virtual void

參數(shù):

類型
參數(shù)名說(shuō)明
floattrackHeight滾動(dòng)條高度

解釋:設(shè)置滾動(dòng)條高度


virtual void setMinTrackTintImage(CAImage* minTrackTintImage);

返回值:virtual void

參數(shù):

類型
參數(shù)名說(shuō)明
CAImage*minTrackTintImage前景圖片(已經(jīng)劃過(guò)的部分)  

解釋:設(shè)置前景圖片(已經(jīng)劃過(guò)的部分)  


virtual void setMaxTrackTintImage(CAImage* maxTrackTintImage);

返回值:virtual void

參數(shù):

類型
參數(shù)名說(shuō)明
CAImage*maxTrackTintImage后景圖片(未劃過(guò)的部分) 

解釋:設(shè)置后景圖片(未劃過(guò)的部分) 


virtual void setThumbTintImage(CAImage* thumbTintImage);

返回值:virtual void

參數(shù):

類型
參數(shù)名說(shuō)明
CAImage*thumbTintImage滾動(dòng)塊的圖片 

解釋:設(shè)置滾動(dòng)塊的圖片 

      

void setContentSize(const CCSize & var);

返回值:void

參數(shù):

類型
參數(shù)名說(shuō)明
CCSizevar內(nèi)容大小

解釋:設(shè)置內(nèi)容大小


bool initWithFrame(const DRect& rect);

返回值:bool

參數(shù):

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

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


bool initWithCenter(const DRect& rect);

返回值:bool

參數(shù):

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

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


virtual bool ccTouchBegan(CATouch *pTouch, CAEvent *pEvent);

返回值:virtual bool

參數(shù):

類型參數(shù)名說(shuō)明
CATouch*pTouch觸摸傳遞對(duì)象
CAEvent*pEvent此參數(shù)待定

解釋:觸摸事件開(kāi)始時(shí)的回調(diào)函數(shù)


virtual void ccTouchMoved(CATouch *pTouch, CAEvent *pEvent);

返回值:virtual void

參數(shù):

類型參數(shù)名說(shuō)明
CATouch*pTouch觸摸傳遞對(duì)象
CAEvent*pEvent此參數(shù)待定

解釋:觸摸事件中觸點(diǎn)移動(dòng)時(shí)的回調(diào)函數(shù)


virtual void ccTouchEnded(CATouch *pTouch, CAEvent *pEvent);

返回值:virtual void

參數(shù):

類型參數(shù)名說(shuō)明
CATouch*pTouch觸摸傳遞對(duì)象
CAEvent*pEvent此參數(shù)待定

解釋:觸摸事件結(jié)束時(shí)的回調(diào)函數(shù)


virtual void layoutSubViews();

返回值:virtual void

參數(shù):

解釋:子視圖布局



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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)