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

[教程] [无脑码农CrossApp笔记]--CAAlertView提示框

[复制链接]
最佳答案
0 
无脑码农 发表于 2015-4-1 10:34:55 | 显示全部楼层 |阅读模式
CAAlertView是提示框控件,如果提示框内的按钮个数不超过三个,这个横向排列按钮,如果按钮个数超过三个则纵向排列。
我们来看一下CAAlertView常用的一些函数:
函数 说明
void setMessageFontName(std::string &var)         提示信息的字体
void setTitle(std::string var, CAColor4B col)         提示框的标题
void setAlertMessage(std::string var, CAColor4B col)         提示框的提示信息
CAAlertView *createWithText(const char* pszTitle, const char* pszAlertMsg, const char* pszBtnText, ...)创建CAAlertView
void addButton(const std::string& btnText, CAColor4B col = ccc4(3, 100, 255, 255), CAImage* pNormalImage = NULL, CAImage* pHighlightedImage = NULL) 添加一个按钮到CAAlertView
void setTarget(CAObject* target, SEL_CAAlertBtnEvent selector) 添加监听
void show() 显示提示框


我们来看一下实例代码:
首先在.h文件中声明一下函数:
  1.         //按钮的回调函数
  2.         void respondTouch(CAControl* btn, CCPoint point);
  3.         //提示框的回调函数
  4.         void alertViewCallback(int btnIndex);
复制代码
然后在.cpp文件中添加以下代码:
  1. void FirstViewController::viewDidLoad()
  2. {
  3.         //获取屏幕宽度
  4.         CCSize size = this->getView()->getBounds().size;
  5.         //设置背景颜色为黑色
  6.         this->getView()->setColor(CAColor_black);
  7.         //创建Button
  8.         CAButton* imageBtn = CAButton::createWithCenter(CADipRect(size.width*0.5, 500, 200, 50), CAButtonTypeSquareRect);
  9.         //设置Buttion文本
  10.         imageBtn->setTitleForState(CAControlStateAll, "Click");
  11.         //设置tag值
  12.         imageBtn->setTag(1);
  13.         //设置按钮监听
  14.         imageBtn->addTarget(this, CAControl_selector(FirstViewController::respondTouch), CAControlEventTouchUpInSide);
  15.         //添加到屏幕
  16.         this->getView()->addSubview(imageBtn);
  17. }
  18. void FirstViewController::respondTouch(CAControl* btn, CCPoint point)
  19. {
  20.         //获得屏幕大小
  21.         CCSize size = this->getView()->getBounds().size;
  22.         //创建CAAlerView 并设置显示文本和 green按钮和yellow按钮
  23.         CAAlertView* alertView = CAAlertView::createWithText("ButtonImage", UTF8("点击替换按钮颜色"), "green", "yellow", NULL);
  24.        
  25.         //获得0-1之间的随机数
  26.         float randNum = CCRANDOM_0_1();
  27.        
  28.         if (randNum > 0.333f)
  29.         {
  30.                 //添加按钮设置文本为orange
  31.                 alertView->addButton("orange");
  32.         }
  33.         if (randNum> 0.666f)
  34.         {
  35.                 //添加按钮并设置文本为blue
  36.                 alertView->addButton("blue");
  37.         }
  38.         //显示弹窗(如果不调用,弹窗不显示)
  39.         alertView->show();
  40.         //设置弹窗按钮的回调
  41.         alertView->setTarget(this, CAAlertView_selector(FirstViewController::alertViewCallback));
  42. }

  43. void FirstViewController::alertViewCallback(int btnIndex)
  44. {
  45.         //根据tag获得imageBtn对象
  46.         CAButton* imageBtn =(CAButton*) this->getView()->getSubviewByTag(1);
  47.         //根据CAAlertView上按钮的index判断响应的逻辑
  48.         if (btnIndex == 0)
  49.         {
  50.                 //设置imageBtn背景色为green
  51.                 imageBtn->setBackGroundViewForState(CAControlStateNormal, CAView::createWithColor(CAColor_green));
  52.         }
  53.         else if (btnIndex == 1)
  54.         {
  55.                 //设置imageBtn背景色为yellow
  56.                 imageBtn->setBackGroundViewForState(CAControlStateNormal, CAView::createWithColor(CAColor_yellow));
  57.         }
  58.         else if (btnIndex == 2)
  59.         {
  60.                 //设置imageBtn背景色为orange
  61.                 imageBtn->setBackGroundViewForState(CAControlStateNormal, CAView::createWithColor(CAColor_orange));
  62.         }
  63.         else
  64.         {
  65.                 //设置imageBtn背景色为blue
  66.                 imageBtn->setBackGroundViewForState(CAControlStateNormal, CAView::createWithColor(CAColor_blue));
  67.         }
复制代码
我们在viewDidLoad()函数中添加了一个Button,并为这个Button绑定监听,当按下这个Button时调用:respondTouch(CAControl* btn, CCPoint point),创建一个提示框,提示框中的按钮格式根据一个随机数来判断是两个还是三个,同时为其绑定监听函数。

评分

参与人数 1声望 +10 收起 理由
小鱼初下水 + 10 很给力!

查看全部评分

最佳答案
0 
小鱼初下水 发表于 2015-5-30 01:59:03 | 显示全部楼层
好赞,是一周一更吧?
最佳答案
0 
晓晨残梦 发表于 2015-12-31 11:30:55 | 显示全部楼层
大神,为什么我按你一步一步写的程序,最后执行完,上面没有文字,只有按钮。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

推荐阅读 More>

© 2001-2015 9秒社团

合作伙伴

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