滚动

时间:2017-10-06 09:16:50

标签: ios swift swift3 collectionview

我有一个水平UICollectionView,有几个项目。当我选择其中一个时,我从API获取一些数据并将其显示在屏幕上。

当我开始滚动UICollectionView以选择另一个类别时,焦点转到第一个选项而不会保留在我选择的最后一个项目中。

我不确定它是否是我的代码中的错误,或者我需要实现一些功能来解决它​​。

我的代码与UICollectionView

的声明相关

我已实施此协议:UICollectionViewDataSourceUICollectionViewDelegate

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    // get a reference to our storyboard cell
    return cell
}

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    //call to the presenter to call API
}

另外,我需要观察者在加载屏幕时选择第一项:

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {

    if let observedObject = object as? UICollectionView, observedObject == collectionView {
        DispatchQueue.main.async(execute: {
            self.collectionView.selectItem(at: IndexPath(item: 0, section: 0), animated: true, scrollPosition: UICollectionViewScrollPosition.bottom)
            self.collectionView(self.collectionView, didSelectItemAt: IndexPath(item: 0, section: 0))
        })
    }
}

0 个答案:

没有答案