分享3年前一個手游項目寫的一個組件,仿iOS UIkit實現一個PickerView。
之前是用v2.x版本寫的,已改成v3.x的API。
下圖是iOS的UIPickerView
以下我實現的組件預覽截圖
複製代碼
- UINumberPicker *picker = UINumberPicker::create();
- // set the cell size
- picker->setItemSize(100, 22);
- // set the data show five items,the minimize value is 1,the max is 55, default show 1;
- picker->setDataprovider(5, 1, 55,1);
- picker->setPosition(100, 30); //set the postions
- this->addChild(picker);
- picker->setSkin("res/pickerBg.png", "res/pickerSelectionIndicator.png");
-
- picker->valueChangeHandler = std::bind(&HelloWorld::pickerChangeHandler,this, std::placeholders::_1);
- void HelloWorld::pickerChangeHandler(cocos2d::Node *pnode)
- {
- auto picker = dynamic_cast<UINumberPicker*>(pnode);
- CCLOG("選擇的是 %d",picker->getValue());
- }
|
外觀和交互操作類似iOS picker,可點可滑可拖,建議真機上用手指滑動,相信我,體驗遠超鼠標操作。
代碼框架是仿ScrollView的源碼,包括內容裁剪、緩動動畫處理等等。
這是源碼下載地址,c++寫的,沒用到特殊api,頭文件有public方法註釋,有改進意見歡迎指正。
http://pan.baidu.com/s/14tNVw
沒有留言:
張貼留言