JiongXing / PhotoBrowser

Elegant photo browser in Swift. 图片与视频浏览器。
MIT License
1.32k stars 207 forks source link

browser显示时,有监听到滑动到最后一张或第一张的事件吗 #109

Closed doing123 closed 5 years ago

JiongXing commented 5 years ago

有监听每一页的滑动事件,在photoBrowserDelegate有,重写它的方法可以拿到回调:

    /// pageIndex 值改变时回调
    func photoBrowser(_ browser: JXPhotoBrowser, pageIndexDidChanged pageIndex: Int)
doing123 commented 5 years ago

多谢,这个昨天找到了。还要请教关于显示后修改数据源的问题,

self!.browser?.dataSource = self!.makeDataSource2(image: (cell?.imageView.image)!)
            self!.browser?.reloadData()
            self!.browser?.scrollToItem(count - 1, at: .centeredVertically, animated: true)

1.是像这样直接修改dataSource吗? 2.reloadData、scrollToItem的时机是? 现在到最后一条时加载更多只调用reloadData会黑屏,调用scrollToItem会导致'attempt to scroll to invalid index path'错误(我用的网络图片)

JiongXing commented 5 years ago

Example里的CustomCellViewController有示例点击删除一项的写法:

            // 删除
            cell.clickDeleteCallback = { _ in
                print("移除第\(index)项")
                self?.modelArray.remove(at: index)
                self?.browser?.reloadData()
            }

你上面发的1,不是这样改,browser的dataSource是一个数据源提供类,提供类不需重新赋值,你要改的是数据源提供类里的数据。在数据修改完后就可以调用reload和scroll了。 invalid index path'是越界了,估计是数据没改到

doing123 commented 5 years ago

前端刚转iOS不到一个月,已解决,多谢。

JiongXing commented 5 years ago

好好的大前端,为啥要趟iOS这水😄

doing123 commented 5 years ago

公司业务需要,咱就是一块砖,哪里需要哪里搬。

现在 pod install 后,import Kingfisher会报错,麻烦适配下版本。 Module file's minimum deployment target is ios10.0 v10.0: /Users/qinjunshan/Library/Developer/Xcode/DerivedData/CodeSprite-heaceykxqtvxhcagwfmbkjlndnpp/Build/Products/Debug-iphonesimulator/Kingfisher/Kingfisher.framework/Modules/Kingfisher.swiftmodule/x86_64.swiftmodule

JiongXing commented 5 years ago

Kingfisher最新版只支持ios10以上了,你试试在自己的工程里指定Kingfisher一个低版本

Gdmec07140507 commented 5 years ago

我也遇到Module file's minimum deployment target is ios10.0 v10.0这个问题,请问如果指定低版本的kingfisher不能解决问题,那就不能用你这个库了么?

JiongXing commented 5 years ago

@Gdmec07140507 可以不使用Kingfisher,改用SDWebImage等其它库,然后你需要实现JXPhotoLoader的协议方法,把Kingfisher换成SDWebImage,再把loader传进Browser就行。 在pod file只使用pod 'JXPhotoBrowser/Core'

JiongXing commented 5 years ago

v2.2.0已发布,此版本兼容Kingfisher5.0