iCarousel 上的 carouselCurrentItemIndexDidChange 仅在我滑动时被调用

carouselCurrentItemIndexDidChange on iCarousel only being called when I swipe

我在我的 Swift+Sprite Kit 游戏中使用 iCarousel,其中用户已解锁和锁定项目。

锁定的项目会显示一些信息,比如当前用户的硬币,以及一些显示 "UNLOCK THIS FOR: X amount of coins" 的文字,如果轮播项目没有锁定,它不会显示任何信息,只有一个按钮那说 "Select".

现在,我开始工作了,但它只会在我开始滑动项目时工作,而不是第一次出现轮播时。

为了完成这项工作,我在 carouselCurrentItemIndexDidChange() 方法中进行了操作。当我滑动时,这显然会改变。

如何在开始时设置当前轮播索引,这样我就可以强制显示或不显示信息,具体取决于项目是锁定还是解锁,而不仅仅是在我开始滑动时?

要添加更多相关信息,假设用户选择了索引 4 处的项目,我将该索引保存在本地。因此,如果用户关闭并打开游戏,轮播应该从 4 而不是 0 开始。

提前致谢。

您应该在 viewForItemAtIndex: reusingView: 中设置轮播视图。此方法返回的视图应表示该轮播项目的当前状态;如此锁定或 "Select" 视情况而定。

如果项目的状态发生变化,那么您可以调用 reloadItemAtIndex: 让 iCarousel 通过调用 viewForItemAtIndex: reusingView:.

请求该项目的更新视图

您可以通过调用 scrollToItemAtIndex:animated:

将轮播滚动到特定项目