2017-10-11 16 views
13

के नीचे प्रकट होता है किसी कारण से मेरी स्क्रॉलबार हमेशा संग्रह दृश्य अनुभाग शीर्षलेख के नीचे दिखाई देता है। कोई भी मदद बहुत ही सराहनीय होगी!स्क्रॉलबार गलत रूप से UICollectionView अनुभाग शीर्षलेख

enter image description here

+1

यह एक आईओएस 11 बग है। स्क्रॉल बार आईओएस 10 में सही ढंग से स्थित है। – nathan

उत्तर

13

मैं एक वैकल्पिक हल मिल गया। यह समस्या यह है कि हेडर व्यू के zPosition संग्रह दृश्य द्वारा गलत तरीके से सेट किया जा रहा है। इसे ठीक करने के लिए, हम हमेशा यह सुनिश्चित करेंगे कि zPosition हमारा वांछित मूल्य है।

एक CALayer उपवर्ग जो अन्य कुछ भी होने से 0.

class CustomLayer: CALayer { 
    override var zPosition: CGFloat { 
     get { return 0 } 
     set {} 
    } 
} 

तो इस नए उपवर्ग करने के लिए अपने संग्रह को देखने के हेडर के परत वर्ग सेट से zPosition से बचाता है बनाएँ।

class MyHeaderView: UICollectionReusableView { 

    // your other custom code here 

    override class var layerClass: AnyClass { 
     get { return CustomLayer.self } 
    } 

} 

यह उम्मीद है कि यह अच्छी तरह से पर्याप्त काम करता है जब तक बग तय हो गई है के रूप में इस मुद्दे आईओएस से 10 में नहीं होती, एक iOS 11 बग है।

+1

साझा करने के लिए धन्यवाद, यह मैं जो कर रहा था उससे बेहतर समाधान की तरह लगता है। मैं मूल रूप से हेडरसेल को एक नियमित सेल के रूप में सेट करता हूं। लेकिन तुम्हारा साफ दिखता है। – Soja

+1

ग्रेट फिक्स! साझा करने के लिए धन्यवाद :) –

3

वही अवधारणा, लेकिन यहां एक आसान कामकाज है जिसके लिए आपके UICollectionReusableView उदाहरणों को उप-वर्ग का उपयोग करने की आवश्यकता नहीं है।

UICollectionViewDelegate के अनुरूप (यदि आप पहले से ही नहीं करते हैं) और लागू तो जैसे willDisplaySupplementaryView प्रोटोकॉल विधि:

func collectionView(_ collectionView: UICollectionView, willDisplaySupplementaryView view: UICollectionReusableView, forElementKind elementKind: String, at indexPath: IndexPath) { view.layer.zPosition = 0.0 }

आईओएस 11.2.1 में परीक्षण किया गया।

+0

क्या यह आईओएस 11 के पुराने संस्करणों पर काम करता है? – nathan

+0

@Nathan बग केवल आईओएस 11 के लिए मौजूद है, इसलिए इस कोड का आईओएस <= 10 के लिए कोई प्रभाव नहीं है। ऐसा कहा जा रहा है, मैंने आईओएस 11.0 या 11.1 पर इसका परीक्षण नहीं किया है। – Keller

+0

आईओएस 11.1.2 पर भी काम करता है – bbjay

संबंधित मुद्दे