Categories: CrossApp 教程

CAProgress(进度条)

类说明

CAProgress是进度条控件,主要用于显示任务进度。

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

属性 说明
ProgressTintColor 设置进度的颜色
ProgressTrackColor 设置背景的颜色
ProgressTintImage 设置进度的图片
ProgressTrackImage 设置背景的图片

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

方法 说明
init 初始化
create 创建,默认Frame为(0,0,0,0)
setColor 设置进度条颜色
setProgress 设置进度
getProgress 获取进度

CAProgress是一个很简单的控件,其使用方式也比较便捷,我们只需要在相应的逻辑里对齐值进行增减便可以了,下面我们的实例中,就演示了在CrossApp的定时器中,每间隔一段时间增减CAProgress的值,当CAProgress值超过最大时设置为0的循环演示。

首先我们在FirstViewController.h添加一个定时器函数

//定时器函数
    void updateProgressValue(float dt);

然后在FirstViewController.cpp中添加一下代码:

void FirstViewController::viewDidLoad()
{
    // Do any additional setup after loading the view from its nib.
    DSize size = this->getView()->getBounds().size;
    CAProgress* progress = CAProgress::create();
     
    //设置显示区域
    progress->setCenter(DRect(size.width * 0.5,  200, 300, 60));
     
    //设置进度值(0--1)之间的float
    progress->setProgress(0.5f);
     
    //设置进度的颜色
    progress->setProgressTintColor(CAColor_orange);
     
    //设置进度的图片
    //progress->setProgressTintImage(CAImage::create("source_material/btn_rounded_highlighted.png"));
     
    //设置背景的颜色
    progress->setProgresstrackColor(CAColor_yellow);
    
    //设置背景的图片
    //progress->setProgressTrackImage(CAImage::create("source_material/btn_rounded3D_selected.png"));
    
    //设置tag值
    progress->setTag(1);
    
    //添加到屏幕
    this->getView()->addSubview(progress);
     
    //创建Label用于显示progress的值
    CALabel* label = CALabel::createWithCenter(DRect(size.width * 0.5, 100, 200, 100));
    
    //水平剧中
    label->setTextAlignment(CATextAlignmentCenter);
    
    //显示progress的值
    label->setText(crossapp_format_string("Progress:%.02f"));
     
    //设置tag值
    label->setTag(2);
    
    //添加到屏幕
    this->getView()->addSubview(label);
     
    //启动定时器,间隔0.05秒调用
    CAScheduler::schedule(schedule_selector(FirstViewController::updateProgressValue), this, 0.05, false);
}
     
//定时器函数
void FirstViewController::updateProgressValue(float dt)
{
    //根据tag获得progress对象
    CAProgress* progress = (CAProgress*) this->getView()->getSubviewByTag(1);
    
    //获得progress的值
    float value = progress->getProgress();
     
    if (value < 1.0f)
    {
        value = value + 0.01;
    }
    else
    {
        value = 0;
    }
     
    //赋值
    progress->setProgress(value);
     
    //根据tag获得label
    CALabel* label = (CALabel*)this->getView()->getSubviewByTag(2);
     
    //显示value值
    label->setText(crossapp_format_string("Progress:%.02f", value));
}

CAProgress 属性说明

ProgressTintColor

类型:CAColor4B

解释:设置进度的颜色。set/get{}。


ProgressTrackColor

类型:CAColor4B

解释:设置背景的颜色。set/get{}。


ProgressTintImage

类型:CAImage*

解释:设置进度的图片。set/get{}。


ProgressTrackImage

类型:CAImage*

解释:设置背景的图片。set/get{}。


CAProgress 方法说明

bool init();

返回值:bool

参数:

解释:初始化

static CAProgress* create();

返回值:static CAProgress*

参数:

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

virtual void setColor(const CAColor4B& color);

返回值:virtual void

参数:

类型
参数名
说明
const CAColor4B& color 颜色

解释:设置进度条颜色

void setProgress(float progress, bool animated = false);

返回值:void

参数:

类型
参数名
说明
float progress 进度值
bool animated = false 是否显示动画

解释:设置进度

float getProgress();

返回值:float

参数:

解释:获取进度

admin

这个人很懒,什么都没有留下~

Share
Published by
admin

Recent Posts

在 Chrome 中删除、允许和管理 Cookie

您可以选择删除现有 Cooki…

2 天 ago

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

1 周 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

2 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

3 周 ago

Vue3:手动清理keep-alive组件缓存的方法

Vue3中手动清理keep-a…

3 周 ago

聊聊React和Vue组件更新的实现及区别

React 和 Vue 都是当…

4 周 ago