Добавленный TableView в Sprite не виден, а все остальные Sprites видны

Я унаследовал спрайт и хочу поместить его в TableView, но когда я добавляю унаследованный спрайт в таблицу сцены, она не видна, но все остальные спрайты, добавленные к унаследованному спрайту, видны (я проверил, он создает ячейки, позиция и индекс z устанавливаются правильно, когда я добавляю TableView прямо в Scene виден).


person PaolaJ.    schedule 02.05.2015    source источник


Ответы (1)


Я могу добавить TableView в Sprite в Cocos2d-x v3.6, но немного сложно точно сказать, почему ваш не отображается. Вот что нужно проверить:

  • Вы добавили TableView в качестве дочернего элемента в Sprite через addChild?
  • Когда вы добавляете TableView в Sprite, правильно ли настроен ваш источник данных? (Кажется, это так, учитывая ваш вопрос).
  • Есть ли проблемы с позиционированием, когда вы добавляете его в спрайт из-за позиции привязки вашего спрайта и его родителя (ей)? Это может быть TableView с неправильным позиционированием или сами TableViewCells. Помните, что когда вы добавляете дочерний элемент к некоторому узлу, его точкой привязки будет Vec2(0.5, 0.5).
  • Вы не обязаны переопределять cocos2d::Size cellSizeForTable(cocos2d::extension::TableView *table), и если у вас нет высоты ячеек, ячейки могут не отображаться.
  • Попробуйте «упростить» любую имеющуюся у вас логистику и следуйте коду в TableViewTestScene.cpp, который является частью cpp-тестов. (cocos-directory/tests/cpp-tests/Classes/ExtensionsTest/TableViewTest)
  • В крайнем случае: попробуйте сделать что-нибудь глупое, например, придать таблице и ячейкам большую высоту и ширину по 500-1000 пикселей каждая. Дайте им абсолютную позицию где-нибудь в вашем Спрайте. Дайте каждому из них ярлык с надписью «Привет, мир!» и посмотреть, появятся ли они.

Также может быть полезно увидеть применимый код.

Очень позднее редактирование: сегодня я понял, что объекты Layer (и, следовательно, TableViews) всегда имеют Anchor Point Vec2::ANCHOR_BOTTOM_LEFT. Может ли это быть вашей проблемой?

person Deadpikle    schedule 10.07.2015