2016年3月30日 星期三

20160330_Cocos2d-x 3.0 的PickerView組件實現

http://www.cocoachina.com/bbs/read.php?tid-327097.html


Cocos 的PickerView組件實現   

分享3年前一個手游項目寫的一個組件,仿iOS UIkit實現一個PickerView。
之前是用v2.x版本寫的,已改成v3.x的API。
下圖是iOS的UIPickerView

以下我實現的組件預覽截圖


複製代碼
  1.     UINumberPicker *picker = UINumberPicker::create();
  2.     // set the cell size
  3.     picker->setItemSize(100, 22);
  4.     // set the data show five items,the minimize value is 1,the max is 55, default show 1;
  5.     picker->setDataprovider(5, 1, 55,1);
  6.     picker->setPosition(100, 30);             //set the postions
  7.     this->addChild(picker);
  8.     picker->setSkin("res/pickerBg.png", "res/pickerSelectionIndicator.png");
  9.     
  10.     picker->valueChangeHandler = std::bind(&HelloWorld::pickerChangeHandler,this, std::placeholders::_1);
  11. void HelloWorld::pickerChangeHandler(cocos2d::Node *pnode)
  12. {
  13.     auto picker = dynamic_cast<UINumberPicker*>(pnode);
  14.     CCLOG("選擇的是 %d",picker->getValue());
  15. }

外觀和交互操作類似iOS picker,可點可滑可拖,建議真機上用手指滑動,相信我,體驗遠超鼠標操作。


代碼框架是仿ScrollView的源碼,包括內容裁剪、緩動動畫處理等等。


這是源碼下載地址,c++寫的,沒用到特殊api,頭文件有public方法註釋,有改進意見歡迎指正。

http://pan.baidu.com/s/14tNVw

沒有留言:

張貼留言

cocos2dx-lua 建立滑鼠監聽

重要關鍵字  EVENT_MOUSE_SCROLL addEventListenerWithSceneGraphPriority      if IsPc() then --建立滑鼠監聽         local listener = cc.EventListenerMouse...