向Sprite添加TableView不可见,所有其他Sprite都可见

时间:2015-05-02 06:30:12

标签: cocos2d-x cocos2d-x-3.0

我继承了Sprite并且我想放入TableView但是当我将继承的Sprite添加到场景表时是不可见的但是所有其他sprite添加到继承的sprite是可见的(我检查它创建单元格,位置和z索引设置正确,当我直接将TableView添加到Scene时,它是可见的)。

1 个答案:

答案 0 :(得分:0)

我能够在Cocos2d-x v3.6中为一个Sprite添加一个TableView,但是很难确切地说出为什么你的人没有出现。以下是一些要检查的事项:

  • 您是否已通过addChild
  • 将TableView作为子项添加到Sprite中
  • 将TableView添加到Sprite时,您的DataSource是否设置正确? (考虑到你的问题,似乎就是这种情况)。
  • 由于Sprite及其父级的锚位置,将它添加到Sprite时会出现定位问题吗?可能是TableView定位不正确,也可能是TableViewCells本身。请记住,当您将子项添加到某个节点时,其锚点为Vec2(0.5, 0.5)
  • 您不会被迫覆盖cocos2d::Size cellSizeForTable(cocos2d::extension::TableView *table),如果您没有单元格高度,则单元格可能不会显示。
  • 尝试"减少"您拥有的任何物流,并遵循TableViewTestScene.cpp中的代码,这是cpp-tests的一部分。 (茯苓目录/测试/ CPP-测试/类别/ ExtensionsTest / TableViewTest)
  • 最后的手段:尝试做一些愚蠢的事情,就像给你的桌子和牢房一个大的高度和宽度每个500-1000像素。在你的精灵中给他们一个绝对的位置。给每个人一个标签,上面写着" Hello,World!"看看他们是否出现了。

查看适用的代码可能会有所帮助。

一个非常晚的编辑:我今天意识到,好像Layer对象(以及TableViews)总是有一个Vec2::ANCHOR_BOTTOM_LEFT的锚点。这可能是你的问题吗?