所以,我有一个ScrollView,上面有卡片。 ScrollView必须启用分页。
目标是用户必须能够滚动它,即使它只有一张卡。由于我的ScrollView框架具有与卡片图片完全相同的宽度和高度,因此我决定增加ScrollView.contentSize的宽度并为其添加一个点。
事实证明它工作正常,但它有点毛刺 - 当我将卡片向左拖动,然后再次抓住它时会向右移动一点(我想,对于那一点的值) 。如果我增加contentSize,移位也会增加(例如,如果内容大小增加10,则移位值也是10分)。它真的让我很烦恼,我想摆脱它。
关于如何做到这一点的任何建议?非常感谢帮助。
UPD:我试图在scrollViewDidEndDecelerating手动重新定位卡,但这没有帮助。我现在的猜测是,可以通过将内容偏移设置为正确的值来解决问题(因为现在它是(0,0)),但我无法弄清楚如何去做。
UPD2:这是我现在使用的一些代码:
calendarScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 334, 372)];
//The cards themselves are 334 points wide too
calendarScrollView.clipsToBounds = NO;
calendarScrollView.pagingEnabled = YES;
calendarScrollView.bounces = YES;
calendarScrollView.showsHorizontalScrollIndicator = NO;
calendarScrollView.delegate = self;
//This part is used in the cycle of creating the cards
for (...) {
...
if (onlyOneCard) {
calendarScrollView.contentSize = CGSizeMake(335, 372);
onlyOneCard = 0;
} else {
calendarScrollView.contentSize = CGSizeMake(334+offsetInScrollView, 372); //offsetInScrollView is increased by 334 by every end of the iteration of the cycle
}
...
}
答案 0 :(得分:2)
您可以将scrollview的跳出属性设置为TRUE。
如果超出滚动视图的范围,它将始终反弹。 :)