CAStepper(步进控件)

类说明

CAStepper是步进控件,它的作用和CASlider非常类似,只是CAStepper的改变的固定值,它包括左右两部分,左部为减少,右部为增加。


CAStepper 属性(点击查看方法介绍)

属性说明
Continuous设置连续
AutoRepeat设置自动重复
Wraps设置是否可在最大值和最小值循环
Value设定值
MinValue设定最小值
MaxValue设定最大值
StepValue设置步进值
TouchEffect设置接触效应

CAStepper 方法(点击查看方法介绍)

方法说明
create创建,默认Frame为(0,0,0,0)
createWithFrame创建,并指定其Frame,默认Frame为(0,0,0,0)
createWithCenter创建,并指定其Center,默认Center为(0,0,0,0)
setBackgroundImage设置背景图像
getBackgroundImageForState获取背景图像
setIncrementImage设置右部增加部分的背景
getIncrementImageForState获取右部增加部分的背景
setDecrementImage设置左部减少部分的背景
getDecrementImageForState获取左部减少部分的背景
addTarget添加回调事件
removeTarget删除回调事件
removeAllTargets删除所有回调事件
init初始化
initWithFrame初始化,并指定其Frame
initWithCenter初始化,并指定其Center
onEnter输入
onExit退出
visit访问
setDividerColor设置分频器颜色
getDividerColor获取分频器颜色
setTailorImageAtIndex设置索引裁剪图像
getTailorImageAtIndex获取索引截取图像

我们尝试这用CAStepper去控制一张图片的旋转,每次旋转30度。
同样我们首先要在FirstViewController.h中添加一个监听函数,来监听CAStepper的值的变化。

//监听函数
    void stepperValueChange(CAControl* control, DPoint point);

然后我们在FirstViewController.cpp添加CAStepper控件并为其绑定监听。

void FirstViewController::viewDidLoad()
{
    // Do any additional setup after loading the view from its nib.
    DRect winRect = this->getView()->getBounds();
    DSize size = winRect.size;
     
    //创建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);
     
    //每此变化值(步进值)
    stepper->setStepValue(30);
     
    //设置监听
    stepper->addTarget(this, CAControl_selector(FirstViewController::stepperValueChange));
     
    //是否开启触摸特效
    stepper->setTouchEffect(true);
     
    //释放开车长按效果(flase必须一次一次按,true可以按着不懂变化。默认为true)测试无效
    stepper->setAutoRepeat(true);
     
    //设置是否可在最大值和最小值循环(当增长到最大值时,再点增大则变成最小值。最小值再减少变成最大值)
    stepper->setWraps(true);
     
    //添加到屏幕
    this->getView()->addSubview(stepper);
}

void FirstViewController::stepperValueChange(CAControl* control, DPoint point)
{
    //获得stepper对象
    CAStepper* stepper = (CAStepper*)control;
     
    //根据tag获得imageView
    CAImageView* imageView = (CAImageView*)this->getView()->getSubviewByTag(1);
     
    //获得stepper的当前值
    float zoomValue = stepper->getValue();
     
    //设置旋转角度
    imageView->setRotation(zoomValue);
}

这样我们就可以通过增减CAStepper的值来控制CAImageView的旋转角度了。

CAStepper 属性说明

Continuous

类型:bool

解释:设置连续,set/get{}。

AutoRepeat

类型:bool

解释:设置自动重复,set/get{}。

Wraps

类型:bool

解释:设置是否可在最大值和最小值循环set/get{}。

Value

类型:double

解释:设定值,set/get{}。

MinValue

类型:double

解释:设定最小值,set/get{}。

MaxValue

类型:double

解释:设定最大值。set/get{}。

StepValue

类型:double

解释:设置步进值。set/get{}。

TouchEffect

类型:bool

解释:设置接触效应,set/get{}。

CAStepper 方法说明

static CAStepper* create();

返回值:static CAStepper

参数:

解释:创建,默认Frame为(0,0,0,0)

static CAStepper* createWithFrame(const CCRect& rect);

返回值:static CAStepper

参数:

类型
参数名说明
CCRect&rect区域大小

解释:创建,并指定其Frame,默认Frame为(0,0,0,0)

static CAStepper* createWithCenter(const CCRect& rect);

返回值:static CAStepper

参数:

类型
参数名说明
CCRectrect中心点的位置及

解释:创建,并指定其Center,默认Center为(0,0,0,0)

void setBackgroundImage(CAImage* image, CAControlState state);

返回值:void

参数:

类型
参数名说明
CAImage*image图像
CAControlStatestate控制状态

解释:设置背景图像

CAImage* getBackgroundImageForState(CAControlState state);

返回值:CAImage*

参数:

类型
参数名说明
CAControlStatestate控制状态

解释:获取背景图像

void setIncrementImage(CAImage* image, CAControlState state);

返回值:void

参数:

类型
参数名说明
CAImage*image图像
CAControlStatestate控制状态

解释:设置右部增加部分的背景 

CAImage* getIncrementImageForState(CAControlState state);

返回值:CAImage*

参数:

类型
参数名说明
CAControlStatestate控制状态

解释:获取右部增加部分的背景 

void setDecrementImage(CAImage* image, CAControlState state);

返回值:void

参数:

类型
参数名说明
CAImage*image图像
CAControlStatestate控制状态

解释:设置左部减少部分的背景

CAImage* getDecrementImageForState(CAControlState state);

返回值:CAImage*

参数:

类型
参数名说明
CAControlStatestate控制状态

解释:获取左部减少部分的背景

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

返回值:virtual void

参数:

类型参数名说明
CAObject*target目标
SEL_CAControlselector选择器

解释:添加回调事件


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

返回值:virtual void

参数:

类型参数名说明
CAObject*target目标
SEL_CAControlselector选择器

解释:删除回调事件

virtual void removeAllTargets();

返回值:virtual void

参数:

解释:删除所有回调事件

virtual bool init();

返回值:virtual bool

参数:

解释:初始化

virtual bool initWithFrame(const DRect& rect);

返回值:virtual bool

参数:

类型参数名说明
const DRect&rect区域大小

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

virtual bool initWithCenter(const DRect& rect);

返回值:virtual bool

参数:

类型参数名说明
const DRect&rect中心点的位置及大小

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

virtual void onEnter();

返回值:virtual void

参数:

解释:输入

virtual void onExit();

返回值:virtual void

参数:

解释:退出

virtual void visit();

返回值:virtual void

参数:

解释:访问

void setDividerColor(CAColor4B color);

返回值:void

参数:

类型参数名说明
CAColor4Bcolor颜色

解释:设置分频器颜色

CAColor4B getDividerColor();

返回值:CAColor4B

参数:

解释:获取分频器颜色

void setTailorImageAtIndex(int index);

返回值:void

参数:

类型参数名说明
intindex索引

解释:设置索引裁剪图像

CAView* getTailorImageAtIndex(int index);

返回值:CAView*

参数:

类型参数名说明
intindex索引

解释:获取索引截取图像

      

作者:andy,如若转载,请注明出处:https://www.web176.com/crossapp/10196.html

(0)
打赏 支付宝 支付宝 微信 微信
andy的头像andy
上一篇 2023年2月21日
下一篇 2023年2月21日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注