所以,我有一个 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
}
...
}