auto background = Sprite::create("background.png"); background->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2)); Size backgroundSize = background->getContentSize(); ScrollView * scrollview = ScrollView::create(); //激活反弹,拉过之后可以弹回来 scrollview->setBounceEnabled(true); //设置锚点 scrollview->setAnchorPoint(Vec2::ZERO); //设置滚动方向为水平方向 scrollview->setDirection(ScrollView::Direction::HORIZONTAL); //设置scrollview的size和背景一致 scrollview->setContentSize(backgroundSize); //设置滚动层容器的内部容器大小 scrollview->setInnerContainerSize(scrollview->getContentSize()); //设置滚动层容器坐标 scrollview->setPosition(Vec2((visibleSize.width - backgroundSize.width) / 2 + (backgroundSize.width - scrollview->getContentSize().width) / 2, (visibleSize.height - backgroundSize.height) / 2 + (backgroundSize.height - scrollview->getContentSize().height / 2))); this->addChild(scrollview); //创建一个button auto button = Button::create("button.png", "bnuttonpress.png"); button->setScale9Enabled(true); button->setContentSize(Size(100.0f, button->getVirtualRendererSize().height)); button->setPosition(Vec2(100,100));scrollview->addEventListener([=](Ref * pSender, ScrollView::EventType type){ switch (type) { case cocos2d::ui::ScrollView::EventType::SCROLL_TO_TOP: break; case cocos2d::ui::ScrollView::EventType::SCROLL_TO_BOTTOM: break; case cocos2d::ui::ScrollView::EventType::SCROLL_TO_LEFT: break; case cocos2d::ui::ScrollView::EventType::SCROLL_TO_RIGHT: break; case cocos2d::ui::ScrollView::EventType::SCROLLING: break; case cocos2d::ui::ScrollView::EventType::BOUNCE_TOP: break; case cocos2d::ui::ScrollView::EventType::BOUNCE_BOTTOM: break; case cocos2d::ui::ScrollView::EventType::BOUNCE_LEFT: break; case cocos2d::ui::ScrollView::EventType::BOUNCE_RIGHT: break; case cocos2d::ui::ScrollView::EventType::CONTAINER_MOVED: break; default: break; } }); scrollview->addChild(button);