LvJianfeng / LLCycleScrollView

Swift - 轮播图,文本轮播,支持左右箭头
MIT License
373 stars 65 forks source link

crash #57

Closed wangwentong-lunaon closed 5 years ago

wangwentong-lunaon commented 5 years ago

collectionView.scrollToItem(at: IndexPath.init(item: Int(totalItemsCount/2), section: 0), at: position, animated: false)

this code will crash if imagePaths = [] first , then iamgePaths = [...]

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'attempt to scroll to invalid index path: <NSIndexPath: 0x2830db400> {length = 2, path = 0 - 150}'

wangwentong-lunaon commented 5 years ago

the line of 847 if currentOffsetX <= -maxSwipeSize{ collectionView.scrollToItem(at: IndexPath.init(item: Int(totalItemsCount/2), section: 0), at: position, animated: false) }

LvJianfeng commented 5 years ago

@wangwentong-lunaon 我尝试3张图的数据源并没有发生你说的问题;

请提供初始化代码;

littlegirlpppp commented 5 years ago

this code will crash if imagePaths = [] first , then iamgePaths = [...] . 网络请求后 返回主线程 在给imagePaths赋值 就crash了

kahzee commented 5 years ago

我也是遇到了相同的崩溃,断点停在了这一句: collectionView.scrollToItem(at: IndexPath.init(item: Int(totalItemsCount/2), section: 0), at: position, animated: false) xcode10.1 swift4.2 pod版本1.5.3

错误信息 'attempt to scroll to invalid index path: <NSIndexPath: 0x283a081a0> {length = 2, path = 0 - 350}'

LvJianfeng commented 5 years ago

@littlegirlpppp @kahzee 请提供下DEMO CODE。你们最好Check下数据跟控件对象。

工程里DEMO提供了异步返回的示例,并没有发生类似问题;

kahzee commented 5 years ago

@LvJianfeng 作者你好,感谢你的回复,我下了你的最新demo,如果设置这个参数:bannerDemo2.customPageControlStyle = .snake 同样会出现崩溃问题,我查了很久都没有思路,如果你知道是什么原因导致的可否解答一下?非常感谢!

LvJianfeng commented 5 years ago

@kahzee @littlegirlpppp Hi 感谢回复提醒,我运行了我的DEMO,发生了同样的错误。这个问题目前仅异步加载数据发生此问题,轮播图滚动到一个不存在的位置。

具体问题是由于在setupPageControl的时候进行的位置滚动,这个时候的数据还没有reload导致错误。 新的修改已经提交并提交POD,版本1.5.4

kahzee commented 5 years ago

嗯嗯,原来如此,从你的代码里学到了很多,太谢谢了