void THIS::setBarRefreshV() { CCScrollView* sv = scrollView; CCSize viewSize = sv->getViewSize(); float total = sv->getContainer()->getContentSize().height - viewSize.height; float scrollBarSize = viewSize.height * viewSize.height / total; if(dynamicScrollSize) barV->setContentSize(CCSizeMake(barV->getContentSize().width, scrollBarSize)); else barV->setContentSize(barV->getOriginalSize()); CCSize barContentSize = barV->getContentSize();//, at); float offset = -sv->getContentOffset().y; float offsetX = -sv->getContentOffset().x; float percent = offset / total; percent = MIN(1, percent); percent = MAX(0, percent); percent = percent * (viewSize.height - barContentSize.height) / viewSize.height; float position = ((percent * viewSize.height) + barContentSize.height / 2.f); barV->setPosition(ccp(offsetX + viewSize.width, offset + position)); }
void THIS::setBarRefreshH() { CCScrollView* sv = scrollView; CCSize viewSize = sv->getViewSize(); float total = sv->getContainer()->getContentSize().width - viewSize.width; float scrollBarSize = viewSize.width * viewSize.width / total; if(dynamicScrollSize) barH->setContentSize(CCSizeMake(scrollBarSize, barH->getContentSize().height)); else barH->setContentSize(barH->getOriginalSize()); CCSize barContentSize = barH->getContentSize();//, at); float offset = -sv->getContentOffset().x; float offsetY = -sv->getContentOffset().y; float percent = offset / total; percent = MIN(1, percent); percent = MAX(0, percent); percent = percent * (viewSize.width - barContentSize.width) / viewSize.width; float position = (percent * viewSize.width) + barContentSize.width / 2.f; barH->setPosition(ccp(offset + position, offsetY)); }