Я унаследовал спрайт и хочу поместить его в TableView, но когда я добавляю унаследованный спрайт в таблицу сцены, она не видна, но все остальные спрайты, добавленные к унаследованному спрайту, видны (я проверил, он создает ячейки, позиция и индекс z устанавливаются правильно, когда я добавляю TableView прямо в Scene виден).
Добавленный TableView в Sprite не виден, а все остальные Sprites видны
Ответы (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