मैंने पेजिंग चालू होने के साथ एक पूर्ण स्क्रीन संग्रह दृश्य बनाया है:

यहां बताया गया है कि मैं इसे अपने कोड में कैसे कॉन्फ़िगर करता हूं:

    let layout = UICollectionViewFlowLayout()
    layout.minimumInteritemSpacing = 0.0
    layout.minimumLineSpacing = 0.0
    layout.itemSize = UIScreen.main.bounds.size
    layout.scrollDirection = UICollectionViewScrollDirection.horizontal
    layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0)

    allQuotesCollectionView.collectionViewLayout = layout

और मेरे स्टोरीबोर्ड में:

CollectionView setup

मेरे पास जो समस्या है वह यह है कि पहली बार स्क्रीन लोड होने पर स्क्रॉल करते समय स्क्रॉल एनीमेशन में बग होता है:

Animation Bug

इस बग के होने के बाद स्क्रॉल स्मूथ हो जाता है। मैं इसे कैसे ठीक करूं? मैंने Github Framework का भी उपयोग किया है, लेकिन इससे कोई फायदा नहीं हुआ। मुझे इस मुद्दे के किसी भी संभावित समाधान की आवश्यकता है।

किसी भी मदद के लिए आभारी होंगे, बहुत धन्यवाद।

0
Taras Tomchuk 6 पद 2018, 09:56

1 उत्तर

सबसे बढ़िया उत्तर

तीन-चार दिनों तक इस परेशानी से जूझने के बाद आखिरकार मिल गई वजह:

मेरी गलती यहाँ थी:

override func viewDidLayoutSubviews() {
    let midIndexPath = IndexPath(row: infiniteSize / 2, section: 0)
    allQuotesCollectionView.scrollToItem(at: midIndexPath, at: .centeredHorizontally, animated: false)
}

इस कोड को viewDidAppear विधि में ले जाने के बाद - सब कुछ काम करना शुरू कर दिया और बग गायब हो गया।

तो, मेरा अंतिम कोड अभी इस तरह दिखता है:

override func viewDidAppear(_ animated: Bool) {
    let layout = UICollectionViewFlowLayout()
    layout.minimumInteritemSpacing = 0.0
    layout.minimumLineSpacing = 0.0
    layout.itemSize = UIScreen.main.bounds.size
    layout.scrollDirection = UICollectionViewScrollDirection.horizontal
    layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0)

    allQuotesCollectionView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0)
    allQuotesCollectionView.collectionViewLayout = layout
    allQuotesCollectionView.isPagingEnabled = true

    let midIndexPath = IndexPath(row: infiniteSize / 2, section: 0)
    allQuotesCollectionView.scrollToItem(at: midIndexPath, at: .centeredHorizontally, animated: false)

    DispatchQueue.main.asyncAfter(deadline: .now() + 0.25, execute: {
        UIView.transition(with: self.view, duration: 1, options: .transitionCrossDissolve, animations: {
            self.allQuotesCollectionView.isHidden = false
        })
    })
}

मुझे लगता है कि स्क्रीन पर पेजिंग के साथ लोड होने के बाद, मुख्य रूप से इंडेक्स शुरू करने के बाद आपको संग्रह दृश्य सेट अप करने की आवश्यकता है।

आशा है कि यह भविष्य में किसी की मदद करेगा!

1
Taras Tomchuk 8 पद 2018, 04:32