【发布时间】:2016-08-10 03:09:44
【问题描述】:
我在我的 Swift+Sprite Kit 游戏中使用 iCarousel,其中用户已解锁和锁定项目。
被锁定的物品会显示一些信息,比如当前用户的硬币,以及一些写着“解锁这个:X数量的硬币”的文字,如果轮播物品没有被锁定,它不会显示任何这些信息,只是一个显示“选择”的按钮。
现在,我得到了它的工作,但它只会在我开始滑动项目时工作,而不是轮播第一次出现时。
为了完成这项工作,我在 carouselCurrentItemIndexDidChange() 方法中执行此操作。当我滑动时,这显然会改变。
如何在开始时设置当前轮播索引,以便我可以强制显示或不显示信息,具体取决于项目是锁定还是解锁,而不仅仅是在我开始滑动时?
要添加有关此的更多信息,假设用户选择了索引 4 处的项目,我将该索引保存在本地。因此,如果用户关闭并打开游戏,轮播应该从 4 而不是 0 开始。
提前致谢。
【问题讨论】:
-
你应该在
viewForItemAtIndex中设置它,而不是你正在使用的委托方法 -
哪一个??? this func carousel(carousel: iCarousel, viewForItemAtIndex index: Int, reusingView view: UIView?) -> UIView { ?但这不仅在您创建轮播时被调用,而且再也不会被调用?
-
不,每次需要显示视图时都会调用该方法。它像
cellForRowAtIndexPath一样工作;当视图滚动屏幕时,它们将被丢弃并在返回到屏幕时从此方法中检索。如果影响视图的基础数据发生更改,您可以调用reloadItemAtIndex,然后轮播视图将调用viewForItemAtIndex以获取更新的视图。 -
我昨天检查了我是否有一个名为 viewForItemAtIndex 的方法,但我在 iCarousel 中找不到它。有可能吗?
-
当我说
viewForItemAtIndex时,我只是在节省打字时间。全称就是你说的方法,viewForItemAtIndex: reusingView:。从第 4 项开始,您可以调用scrollToItemAtIndex:animated:可能类似于viewWillAppear
标签: ios swift sprite-kit icarousel