当前位置: 首页>>代码示例>>C++>>正文


C++ CATableViewCell::getFrameOrigin方法代码示例

本文整理汇总了C++中CATableViewCell::getFrameOrigin方法的典型用法代码示例。如果您正苦于以下问题:C++ CATableViewCell::getFrameOrigin方法的具体用法?C++ CATableViewCell::getFrameOrigin怎么用?C++ CATableViewCell::getFrameOrigin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CATableViewCell的用法示例。


在下文中一共展示了CATableViewCell::getFrameOrigin方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: visit

void CAPickerView::visit()
{
    if (m_dataSource)
    {
        for (int i = 0; i < m_tableViews.size(); i++)
        {
            // cycle data
            CATableView* tableView = (CATableView*)m_tableViews.at(i);
            CCPoint offset = tableView->getContentOffset();
            unsigned int component = (unsigned int)m_tableViews.getIndex(tableView);
            int row = m_dataSource->numberOfRowsInComponent(this, component);
            int row_height = m_dataSource->rowHeightForComponent(this, component);
            
            if (row > m_displayRow[component])
            {
                if (offset.y < 0)
                {
                    offset.y += row * 2 * row_height;
                    tableView->setContentOffset(offset, false);
                }
                else if (offset.y > row_height * m_componentsIndex[component].size() - tableView->getFrame().size.height)
                {
                    offset.y -= row * 2 * row_height;
                    tableView->setContentOffset(offset, false);
                }
            }
            
            
            // set opacity
            int offset_y = abs((int)offset.y);
            int remainder = offset_y % row_height;
            int index = offset_y / row_height;
            
            if (remainder >= row_height * 0.5)
            {
                index++;
            }
            
            for (int i=index-1; i<index + m_displayRow[component] + 2; i++)
            {
                CATableViewCell* cell = tableView->cellForRowAtIndexPath(0, i);
                if (cell)
                {
                    float y = cell->getFrameOrigin().y - offset_y + cell->getFrame().size.height/2;
                    float mid = tableView->getFrame().size.height/2;
                    float length = fabs(mid - y);
                    float op = (fabs(length - mid))/mid;
                    op = powf(op, 2);
                    op = MAX(op, 0.1f);
                    cell->setAlpha(op);
                }
            }
            
            // fixed position in the middle
            if (!tableView->isDecelerating() && !tableView->isTracking())
            {
                if (remainder > row_height/2)
                {
                    index++;
                    offset.y = index * row_height;
                    tableView->setContentOffset(offset, true);
                }
                else if (remainder > 0)
                {
                    offset.y = index * row_height;
                    tableView->setContentOffset(offset, true);
                }
                else
                {
                    // set selected when stop scrolling.
                    
                    int selected = index + m_displayRow[component]/2;
                    
                    if (m_selected[component] != selected)
                    {
                        m_selected[component] = selected;
                        if (m_delegate)
                        {
                            m_delegate->didSelectRow(this, m_componentsIndex[component][m_selected[component]], component);
                        }
                    }
                }
                
            }
        }
    }
    
    CAView::visit();
}
开发者ID:lmxing1987,项目名称:CrossApp,代码行数:89,代码来源:CAPickerView.cpp


注:本文中的CATableViewCell::getFrameOrigin方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。