IAPCardView.hpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. //
  2. // IAPCardView.hpp
  3. // demo
  4. //
  5. // Created by Red_mini on 2024/10/25.
  6. //
  7. #ifndef IAPCardView_hpp
  8. #define IAPCardView_hpp
  9. #include "ui/UIPageView.h"
  10. #include "cocos2d.h"
  11. /**
  12. IAPCardView 类 :
  13. 封装一个左右滑动切换页面的View,每个页面是一个Node,且带有页面总数及当前页面显示圆点
  14. 1. sDotCfg为iPhone主屏下方小圆圈配置。定义如下:
  15. struct sDotCfg {
  16. int sepWidth = 0; //每个小圆圈之间的间距
  17. int yStart = 0; //默认是在viewSize的底部.也可以设置偏移.
  18. string highSp = ""; //当前页高亮与普通对应的图片.
  19. string normalSp = "";
  20. };
  21. */
  22. class IAPCardView;
  23. class IAPCardViewDelegate{
  24. public:
  25. virtual void onCardChanged(int currentPageIndex) = 0; // 页面切换时调用
  26. };
  27. class IAPCardView : public Layer{
  28. public:
  29. struct sDotCfg{
  30. int sepWidth = 0;
  31. int yStart = 0;
  32. string hightSp = "";
  33. string normalSp = "";
  34. };
  35. static IAPCardView* create(cocos2d::Size& viewSize, sDotCfg& dotCfg);
  36. void setDelegate(IAPCardViewDelegate* delegate);
  37. void addCard(Node* card);
  38. void removeCard(int index);
  39. private:
  40. // 初始化函数
  41. bool _init(Size& viewSize, sDotCfg& dotCfg);
  42. private:
  43. IAPCardViewDelegate* _delegate = nullptr; // 委托对象
  44. sDotCfg _dotCfg;
  45. Size _viewSize;
  46. ui::PageView* _pageView = nullptr;
  47. Node* _indicatorNode = nullptr;
  48. std::vector<Sprite*> _indicators;
  49. };
  50. #endif /* IAPCardView_hpp */