请选择 进入手机版 | 继续访问电脑版
查看: 1908|回复: 2

[教程] [无脑码农CrossApp笔记]--CASlider滚动条

[复制链接]
最佳答案
0 
无脑码农 发表于 2015-4-1 10:54:25 | 显示全部楼层 |阅读模式
本帖最后由 无脑码农 于 2015-4-1 11:00 编辑

CASlider是滚动条控件,主要作用是方便数值调节,如音量大小控制、缩放视图等操作。

我们了解一下CASlider的常用函数:
函数 说明
void setValue(float value)         设置当前值
void setMinValue(float minValue)         设置最小值
void setMaxValue(float maxValue)         设置最大值
void setTrackHeight(float trackHeight)         设置高度
void setMinTrackTintImage(CAImage* image)        设置前景图片(已经划过的部分)  
void setMaxTrackTintImage(CAImage* image)         设置后景图片(未划过的部分)
void setThumbTintImage(CAImage* image)         设置滚动块的图片

我们可以通过设置CASlider的最大值和最小值来确定其值的范围,可以通过设置图片改变滚动条的样子,我们这里就利用CASlider来控制一张图片的缩放大小,来演示一下CASlider的使用方法:
首先我们在FirstViewController.h中添加一个监听函数,用于监听CASlider的值的变化。
  1.         //监听函数
  2.         void zoomViewBySliderValue(CAControl* control, CCPoint point)
复制代码
然后我们在FirstViewController.cpp中去实现CASlider来控制CAImageView的缩放变化。
  1. void FirstViewController::viewDidLoad()
  2. {
  3.         //获得屏幕大小
  4.         CCSize size = this->getView()->getBounds().size;
  5.         //创建CAImageView
  6.         CAImageView* imageView = CAImageView::createWithImage(CAImage::create("HelloWorld.png"));
  7.         imageView->setCenter(CADipRect(size.width*0.5, size.height*0.5, 800, 1200));
  8.         //设置tag
  9.         imageView->setTag(1);
  10.         //添加
  11.         this->getView()->addSubview(imageView);

  12.         //创建CASlider
  13.         CASlider* slider = CASlider::createWithCenter(CCRect(size.width*0.5, size.height*0.2, size.width*0.8, 20));
  14.         //绑定监听
  15.         slider->addTarget(this, CAControl_selector(FirstViewController::zoomViewBySliderValue));
  16.         //添加
  17.         this->getView()->insertSubview(slider, 1);

  18.         //创建CALabel
  19.         CALabel* label = CALabel::createWithCenter(CCRect(size.width*0.5, size.height*0.1, size.width*0.8, 40));
  20.         //设置文本
  21.         label->setText(CCString::createWithFormat("ScaleValue:%.02f",slider->getValue())->getCString());
  22.         //设置居中
  23.         label->setTextAlignment(CATextAlignmentCenter);
  24.         label->setVerticalTextAlignmet(CAVerticalTextAlignmentCenter);
  25.         //设置Tag
  26.         label->setTag(3);
  27.         this->getView()->addSubview(label);

  28. }

  29. void FirstViewController::zoomViewBySliderValue(CAControl* control, CCPoint point)
  30. {
  31.         //获得silder对象
  32.         CASlider* slider = (CASlider*)control;
  33.         //获得silder的当前值
  34.         float zoomValue = slider->getValue();
  35.         //根据tag值获得image
  36.         CAImageView* image = (CAImageView*)this->getView()->getSubviewByTag(1);
  37.         //设置image的缩放比
  38.         image->setScale(zoomValue);

  39.         //根据tag获得CALabel
  40.         CALabel* label = (CALabel*)this->getView()->getSubviewByTag(3);
  41.         //设置文本
  42.         label->setText(CCString::createWithFormat("ScaleValue:%.02f", slider->getValue())->getCString());
  43. }
复制代码
我们通过addTarget来为CASlider绑定一个监听,我们又在监听函数中,根据CASlider的变化来改变CAImageView的缩放值,同样的原理我们也可以进行其它数值的改变,大家举一反三可以自己去尝试一下。
最佳答案
0 
ch357 发表于 2015-4-1 13:11:56 | 显示全部楼层
虽然看不懂,但是好厉害的感觉
您需要登录后才可以回帖 登录 | 注册

本版积分规则

推荐阅读 More>

© 2001-2015 9秒社团

合作伙伴

公司简介 | 联系方式
COPYRIGHT©2015 ZHONGQINGLONGTU NETWORK CO.LTD ALL RIGHTS RESERVED.ICP备11023195号-4
北京中清龙图网络技术有限公司
返回顶部 返回列表