cocos2dx的CCTableView使用及其ViewSize动态调整,直接上代码参考如下:
1 // 2 // summary : 水平滑动样式的TableView用法 3 void createGlobalPrizeTableView() { 4 if (nullptr != m_pGlobalPrizeList || nullptr == m_pGlobalPrizeListNode) { 5 return; 6 } 7 auto& viewSize = m_pGlobalPrizeListNode->getContentSize(); // m_pGlobalPrizeListNode tableview owner node. 8 m_pGlobalPrizeList = CUITableView::create(this, viewSize); 9 if (nullptr == m_pGlobalPrizeList) { 10 return; 11 } 12 m_pGlobalPrizeList->setDirection(CUITableView::BOTH/*CUITableView::HORIZONTAL*/); 13 m_pGlobalPrizeListNode->addChild(m_pGlobalPrizeList); 14 m_pGlobalPrizeList->reloadData(); 15 } 16 17 18 // 19 // summary : 动态调整视窗尺寸 20 void testH() { 21 if (nullptr != m_pGlobalPrizeList) { 22 static const auto OriginViewSize = m_pGlobalPrizeList->getViewSize(); 23 auto currentViewSize = m_pGlobalPrizeList->getViewSize(); 24 25 static auto fDelta = -450.0f; 26 currentViewSize.width += fDelta; 27 fDelta *= -1.0f; 28 29 m_pGlobalPrizeList->setViewSize(currentViewSize); 30 m_pGlobalPrizeList->updateInset(); 31 const auto& currentContentOffset = m_pGlobalPrizeList->getContentOffset(); 32 m_pGlobalPrizeList->setContentOffset(currentContentOffset); 33 } 34 }
1 // 2 // summary : 垂直滑动样式的TableView用法 3 void createPersonalPrizeTableView() { 4 if (nullptr != m_pPersonalPrizeList || nullptr == m_pPrizePrizeListNode) { 5 return; 6 } 7 auto& viewSize = m_pPrizePrizeListNode->getContentSize(); // m_pPrizePrizeListNode tableview owner node. 8 m_pPersonalPrizeList = CUITableView::create(this, viewSize); 9 if (nullptr == m_pPersonalPrizeList) { 10 return; 11 } 12 m_pPersonalPrizeList->setDirection(CUITableView::BOTH/*CUITableView::VERTICAL*/); 13 m_pPersonalPrizeList->setVerticalFillOrder(CUITableView::TOP_DOWN); 14 m_pPrizePrizeListNode->addChild(m_pPersonalPrizeList); 15 m_pPersonalPrizeList->reloadData(); 16 } 17 18 19 // 20 // summary : 动态调整视窗尺寸 21 void testV() { 22 if (nullptr != m_pPersonalPrizeList) { 23 static const auto OriginViewSize = m_pPersonalPrizeList->getViewSize(); 24 auto currentViewSize = m_pPersonalPrizeList->getViewSize(); 25 26 static auto fDelta = -150.0f; 27 currentViewSize.height += fDelta; 28 fDelta *= -1.0f; 29 30 m_pPersonalPrizeList->setViewSize(currentViewSize); 31 m_pPersonalPrizeList->updateInset(); 32 const auto& currentContentOffset = m_pPersonalPrizeList->getContentOffset(); 33 m_pPersonalPrizeList->setContentOffset(currentContentOffset); 34 } 35 }