有时候需要用到ScrollView 但是又不想有那烦人的弹性效果,自然会想到setBounds(false),可是实践过后会发现,这个函数把滑动惯性也给取消了,于是就是你滑多少,滚动多少,用户体验极差。。。
解决这个方法很简单:
1. 继承ScrollViewDelegate
2. 实现虚函数
virtual void scrollViewDidScroll(ScrollView* view);
然后函数实现如下
void EquipShopItemLayer::scrollViewDidScroll(ScrollView* view)
{
auto layout = view -> getContainer();
float currentY = layout -> getPositionY();
if (currentY > 0) {
view -> setContentOffset(Vec2(0, 0));
}
if (-currentY > layout -> getContentSize().height - view -> getViewSize().height) {
view -> setContentOffset(Vec2(0, -layout -> getContentSize().height + view -> getViewSize().height));
}
}