在原始的Cocos2d-X2.03中:
CCPoint screenPos = this->convertToWorldSpace(this->getParent()->getPosition());
glEnable(GL_SCISSOR_TEST);
float s = this->getScale();
CCEGLView::sharedOpenGLView()->setScissorInPoints(screenPos.x*s, screenPos.y*s, m_tViewSize.width*s, m_tViewSize.height*s);
来裁剪超出区域,其中红色代码应该修改为this->getPosition()取控件自身坐标,而不是父节点坐标。
否则在CCScrollView添加到父节点,且父节点setPosition(x),x为非零坐标后,CCScrollView会出现裁剪错位。
最新的cocos2d-2.1rc0-x-2.1.2-hotfix已经采用getViewRect修复了此BUG。