예제 #1
0
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();
}
예제 #2
0
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);
}
예제 #3
0
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);
}
예제 #4
0
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();
    }
}