【问题标题】:Adding two CCLayers in a single CCScene side by side在单个 CCScene 中并排添加两个 CCLayer
【发布时间】:2013-05-10 06:15:00
【问题描述】:

我正在尝试在一个单个场景上并排添加两个CCLayers(不是一个叠加),其中第二层有一个表格视图就可以了。我已将表格视图作为 子视图 添加到 [[CCDirector sharedDirector] 视图]。第二层的大小是屏幕的大小,而第一层的大小比屏幕的大小要小一些。出现此屏幕时,将显示第一个第二层。单击第二层上的特定按钮后,场景动画向右与第二层上的表格一起显示完整的第一层和第二层的某些部分。

有人可以帮我吗?我提前感谢您的所有帮助。

【问题讨论】:

    标签: iphone ios6 cocos2d-iphone


    【解决方案1】:

    这与层几乎没有关系。图层及其子图层始终绘制在另一图层之上或之后。而 UIView 根本不了解 cocos2d 层或节点。

    您要做的是设计屏幕,然后向左或向右移动整个屏幕。移动时,您需要在每一帧相应地更新表格视图的位置,因为它不会随着 cocos2d 节点一起移动。 CCUIViewWrapper 可能会有所帮助,但如果您只想更新视图的位置,这有点过头了。

    无论您是在场景中设计屏幕,单层还是多层都没有区别。事实上,使用单个场景或图层更容易,因为这样您就可以同时完美同步地为屏幕的两侧设置动画。

    【讨论】:

    • 这很有帮助。我已经分别使用运行动作和表格视图为第二层设置了动画,但是第二层和表格视图的动画没有同步......任何建议......
    • 对于图层的动画,我使用了以下代码:[mHomeLayer runAction:[CCSequence actionOne:[CCDelayTime actionWithDuration:0.0f] 二:[CCMoveTo actionWithDuration:0.4f position:ccp((size .width/4)*3, 0)]]];
    • 对于动画表视图,以下代码:[UIView cancelPreviousPerformRequestsWithTarget:self]; [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:0.4f]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; tableViewHome.frame = CGRectMake(size.width - size.width/4,topBar.contentSize.height, size.width, size.height); [tableViewHome setScrollEnabled:NO]; [UIView 提交动画];
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多