使用 cocos2d-x 3.6 实现滚动视图
Implement a scrollview with cocos2d-x 3.6
>想知道是否有人知道如何在cocos2d-x 3.6(C++)中实现滚动视图。我找到的所有教程都是针对早期的 cocos2d-x 版本。
谢谢
我在下面添加了我的代码,我可以显示灰色滚动视图框,但它无法滚动并且按钮没有出现在上面:
头文件:"CocosGUI.h"和"cocos-ext.h"
//add scroll view
Size scollFrameSize = Size(visibleSize.width, visibleSize.height/4);
auto scrollView = cocos2d::ui::ScrollView::create();
scrollView->setContentSize(scollFrameSize);
scrollView->setBackGroundColorType(cocos2d::ui::Layout::BackGroundColorType::SOLID);
scrollView->setBackGroundColor(Color3B(200, 200, 200));
scrollView->setPosition(Point(0, visibleSize.height/1.5));
scrollView->setDirection(cocos2d::ui::ScrollView::Direction::HORIZONTAL);
scrollView->setBounceEnabled(true);
scrollView->setTouchEnabled(true);
auto containerSize = Size(scollFrameSize.width*2, scollFrameSize.height*2);
scrollView->setInnerContainerSize(containerSize);
this->addChild(scrollView);
auto button1 = cocos2d::ui::Button::create();
button1->setColor(Color3B(250, 200, 50));
button1->setTouchEnabled(true);
button1->setContentSize(Size(100, 100));
button1->setPosition(Point(containerSize.width / 4, containerSize.height / 2));
scrollView->addChild(button1);
auto button2 = cocos2d::ui::Button::create();
button2->setColor(Color3B(250, 200, 50));
button1->setContentSize(Size(100, 100));
button2->setTouchEnabled(true);
button2->setPosition(Point(containerSize.width / 8, containerSize.height / 2));
scrollView->addChild(button2);
我想
通了,它正在滚动,但我添加的按钮错误。对于任何有兴趣的人,请添加这样的按钮
auto button1 = ui::Button::create();
button1->setTouchEnabled(true);
button1->ignoreContentAdaptWithSize(false);
button1->setContentSize(Size(100, 100));
button1->loadTextures("pic1.png", "pic2.png");
button1->setPosition(Point(containerSize.width / 8, containerSize.height / 2));
scrollView->addChild(button1);
Size scroll_size = Director::getInstance()->getWinSize();
Size container_size = Size(scroll_size.width * 2, scroll_size.height);
Layer* container = Layer::create();
container->setContentSize(container_size);
ScrollView* scroll = ScrollView::create(scroll_size, container);
mScroll->setDelegate(this);
mScroll->setDirection(ScrollView::Direction::HORIZONTAL);
1.容器大小应大于滚动视图大小
2.将子项添加到容器,而不是滚动视图
3.实现滚动视图委托
相关文章:
- 如何在不使用滚动条的情况下使视图更改
- GTKMM 文本视图 epands 而不是滚动
- 如何在移动列表视图中添加滚动条?并且用户只能垂直滚动特定区域
- 如何将当前视图滚动到C++生成器中FMX备忘录中的特定行
- 列表视图中的 CListCtrl 垂直滚动条
- 当用户将列表视图项拖动到其滚动条上时,执行默认滚动行为
- 如何在C++中滚动锁定报表样式列表视图的第一列
- 黑莓 10 SDK 测试版 2 中的列表视图滚动问题
- 如何获取避免滚动条的树视图控件的最小大小
- 禁用列表视图中的水平滚动条
- 在 OnLButtonUp 中滚动和更新视图
- QListView:当从顶部删除项目时,如何自动滚动视图并保持视图中正确项目的当前选择
- QtQAbstractItemModel在树视图中滚动时速度较慢
- QGraphics 中不需要的边距与滚动条视图
- 如何访问Qtitan视图的滚动条?
- 删除鼠标滚轮QGraphics视图上的滚动功能
- 滚动QListView以在列表开始插入时保持项目在视图中
- 使用 cocos2d-x 3.6 实现滚动视图
- 将矩形(和点)滚动到视图中
- 如何实现网格/平铺图像视图与滚动在BB10