CCTableView使用及其ViewSize动态调整

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 }
原文地址:https://www.cnblogs.com/tongy0/p/7346286.html