void CANavigationController::layoutNewContainer() { CCRect navigation_bar_rect = CCRectZero; navigation_bar_rect.size = m_tNavigationBarSize; CCRect container_rect = this->getView()->getBounds(); if (m_bNavigationBarHidden) { navigation_bar_rect.origin = this->getNavigationBarTakeBackPoint(); } else { container_rect.size.height -= m_tNavigationBarSize.height; navigation_bar_rect.origin = this->getNavigationBarOpenPoint(); if (m_eNavigationBarVerticalAlignment == CABarVerticalAlignmentTop) { container_rect.origin.y = m_tNavigationBarSize.height; } } CAView* container = m_pContainers.back(); container->setFrame(this->getView()->getBounds()); CANavigationBar* navigationBar = m_pNavigationBars.back(); navigationBar->setFrame(navigation_bar_rect); CAView* secondContainer = m_pSecondContainers.back(); secondContainer->setFrame(container_rect); CAViewController* viewController = m_pViewControllers.back(); viewController->addViewFromSuperview(secondContainer); viewController->viewDidAppear(); }
void CANavigationController::viewDidLoad() { CCRect navigation_bar_rect = CCRectZero; CCRect container_rect = this->getView()->getBounds(); if (m_bNavigationBarHidden) { switch (m_eNavigationBarVerticalAlignment) { case CABarVerticalAlignmentTop: { navigation_bar_rect.origin.y = -m_pNavigationBar->getFrame().size.height; } break; case CABarVerticalAlignmentBottom: { navigation_bar_rect.origin.y = container_rect.size.height; } break; default: break; } } else { container_rect.size.height -= m_pNavigationBar->getFrame().size.height; switch (m_eNavigationBarVerticalAlignment) { case CABarVerticalAlignmentTop: { container_rect.origin.y = m_pNavigationBar->getFrame().size.height; } break; case CABarVerticalAlignmentBottom: { navigation_bar_rect.origin.y = container_rect.size.height; } break; default: break; } } m_pContainer = new CAView(); m_pContainer->setFrame(container_rect); this->getView()->addSubview(m_pContainer); m_pContainer->release(); CAViewController* viewController = m_pViewControllers.front(); viewController->addViewFromSuperview(m_pContainer); m_pNavigationBar->setFrame(navigation_bar_rect); this->getView()->addSubview(m_pNavigationBar); m_pNavigationBar->setDelegate(this); }
void CANavigationController::viewDidLoad() { CCRect rect = this->getView()->getBounds(); rect.size.height -= m_pNavigationBar->getFrame().size.height; rect.origin.y = m_pNavigationBar->getFrame().size.height; m_pContainer = CAView::createWithFrame(rect); this->getView()->addSubview(m_pContainer); CAViewController* viewController = m_pViewControllers.front(); viewController->addViewFromSuperview(m_pContainer); m_pNavigationBar->setFrame(CCRectZero); this->getView()->addSubview(m_pNavigationBar); m_pNavigationBar->setDelegate(this); }
void CANavigationController::layoutNewContainer() { CAViewController* viewController = m_pViewControllers.back(); DRect navigation_bar_rect = DRectZero; navigation_bar_rect.size = m_tNavigationBarSize; DRect container_rect = this->getView()->getBounds(); if (m_bNavigationBarHidden || viewController->getNavigationBarItem()->isNagigationBarHidden()) { navigation_bar_rect.origin = this->getNavigationBarTakeBackPoint(); } else { container_rect.size.height -= m_tNavigationBarSize.height; navigation_bar_rect.origin = this->getNavigationBarOpenPoint(); container_rect.origin.y = m_tNavigationBarSize.height; } CAView* container = m_pContainers.back(); container->setFrame(this->getView()->getBounds()); CANavigationBar* navigationBar = m_pNavigationBars.back(); navigationBar->setFrame(navigation_bar_rect); CAView* secondContainer = m_pSecondContainers.back(); secondContainer->setFrame(container_rect); viewController->addViewFromSuperview(secondContainer); if (m_pViewControllers.size() > 1) { viewController->viewDidAppear(); } }