本文整理汇总了C++中CCScale9Sprite::getPreferredSize方法的典型用法代码示例。如果您正苦于以下问题:C++ CCScale9Sprite::getPreferredSize方法的具体用法?C++ CCScale9Sprite::getPreferredSize怎么用?C++ CCScale9Sprite::getPreferredSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CCScale9Sprite
的用法示例。
在下文中一共展示了CCScale9Sprite::getPreferredSize方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: updateScroll
void updateScroll(){
bool vBar = _scrollBar && _scrollBar->isVisible(),
vNode = _scrollNode && _scrollNode->isVisible();
if(!vBar || !vNode){
return;
}
bool vert = getDirection() == kCCScrollViewDirectionVertical;
CCPoint p, cp = getContentOffset();
CCSize vs = getViewSize(),
cs = getContentSize();
float rate = 1 - (vert? fabsf(cp.y) / (cs.height - vs.height) : fabsf(cp.x) / (cs.width - vs.width));
if(vBar){
CCSize ss = _scrollBar->getPreferredSize();
p = _scrollBar->getPosition();
if(vert){ p.y = cs.height - (cs.height - ss.height) * rate - ss.height - _scrollTrackDelta;
}else{ p.x = cs.width - (cs.width - ss.width) * rate - ss.width - _scrollTrackDelta;
}
_scrollBar->setPosition(p);
}
if(vNode){
p = _scrollNode->getPosition();
if(vert){ p.y = cp.y + vs.height * rate;
}else{ p.x = cp.x + vs.width * rate;
}
_scrollNode->setPosition(p);
}
if(_scrollTrack){
p = _scrollTrack->getPosition();
if(vert){ p.y = fabsf(cp.y);
}else{ p.x = fabsf(cp.x);
}
_scrollTrack->setPosition(p);
}
//CCLog("LuaTableView.updateScroll ss=%d,%d vh=%d cy=%d ch=%d y=%d", (int)ss.width, (int)ss.height, (int)vs.height, (int)p.y, (int)cs.height, (int)_scrollBar->getPositionY());
}
示例2: resetScroll
void resetScroll(){
if(!_scrollBar){ return;}
CCSize vs = getViewSize(), cs = getContentSize();
bool vert = getDirection() == kCCScrollViewDirectionVertical;
bool v = vert? vs.height < cs.height : vs.width < cs.height;
_scrollBar->setVisible(v);
CCPoint p = ccp(0, 0), ap = vert? ccp(1,0) : CCPointZero;
if(v){
CCSize s = _scrollBar->getPreferredSize(),
st = _scrollTrack? _scrollTrack->getPreferredSize() : CCSizeZero;
if(vert){
p.x = vs.width + _scrollOffset - (st.width > 0? (st.width - s.width) / 2 : 0);
_scrollTrackDelta = st.height > 0? (st.height - s.height) / 2 : 0;
s.height = vs.height / cs.height * vs.height - _scrollTrackDelta * 2;
}else{
p.y = vs.height + _scrollOffset - (st.height > 0? (st.height - s.height) / 2 : 0);
_scrollTrackDelta = st.width > 0? (st.width - s.width) / 2 : 0;
s.width = vs.width / cs.width * vs.width - _scrollTrackDelta * 2;
}
_scrollBar->setAnchorPoint(ap);
_scrollBar->setPreferredSize(s);
_scrollBar->setPosition(p);
//CCLog("LuaTableView vScroll.size=%d,%d vh=%d ch=%d", (int)s.width, (int)s.height, (int)vs.height, (int)cs.height);
}
if(_scrollTrack){
_scrollTrack->setVisible(v);
if(v){
CCSize s = _scrollTrack->getPreferredSize();
if(vert){
p.x = vs.width + _scrollOffset;
s.height = vs.height;
}else{
p.y = vs.height + _scrollOffset;
s.width = vs.width;
}
_scrollTrack->setAnchorPoint(ap);
_scrollTrack->setPreferredSize(s);
_scrollTrack->setPosition(p);
}
}
//CCLog("LuaTableView reload vscr=%x visible=%d", _scroller, _scrollBar->isVisible());
updateScroll();
}