将 UIScrollView 添加到 CCSprite
Posted
技术标签:
【中文标题】将 UIScrollView 添加到 CCSprite【英文标题】:Adding UIScrollView To CCSprite 【发布时间】:2014-01-09 10:16:23 【问题描述】:我想向 CCSprite 添加一个 UIScrollView,因为我想管理 z 值并且滚动视图始终位于顶部。
我已经通过添加到[[CCDirector sharedDirector]view]
来实现这一点,但正如你所知,它已经超出了顶部,我不希望这样。如果有人知道该怎么做,请帮助我。
【问题讨论】:
您能否更好地解释一下您要做什么?一个例子可能会有所帮助。还有,你为什么要这么做?谢谢。 这是一个疯狂的想法,这是不可能的。您不能将 uiview 添加到 ccnode。你需要自己实现滚动视图或谷歌CCScrollView。但如果你问我,我会说你应该忘记它 这不是一个疯狂的想法(我读过的书更糟)但仍然不可能。所有 cocos2d 节点都包含在 cocos2d 视图中。您只能在 cocos2d 视图的前面或后面添加其他视图(有一些代码更改)。这就是 CCScrollView 如此受欢迎的原因。 我有一个客观的 c 代码可以很好地用于滚动部分,但在这种情况下,我正在我的游戏中实现一个全局聊天窗口所以,当一个新消息弹出时,我必须自动滚动它对我来说是一项艰巨的任务,这就是我尝试使用 UIScrollView 的原因。 【参考方案1】: try this code (cocos2dx)
CCSprite *sprite;
ScrollView= CCScrollView::create(CCSizeMake(mWidth,mHeight));
ScrollView->setDirection(kCCScrollViewDirectionVertical);
CCLayer* messageLayer = CCLayer::create();
messageLayer->addChild(sprite,1);
messageLayer->setContentSize(CCSizeMake(mWidth, maxContentHeight));
float offsetY = mHeight - messageLayer->boundingBox().size.height;
ScrollView->setContainer(messageLayer);
ScrollView->setContentOffset(ccp(0, offsetY));
ScrollView->updateInset();
ScrollView->setPosition(ccp(0,mHeight/6));
this->addChild(ScrollView);
【讨论】:
感谢您的帮助,但抱歉 karthik 我不是在寻找那个解决方案。以上是关于将 UIScrollView 添加到 CCSprite的主要内容,如果未能解决你的问题,请参考以下文章
将 UIRefreshControl 添加到 UIScrollView
将 UIPageControl 添加到 UIScrollView