2013-06-09 6 views
21

में समायोजित करने के लिए UICollectionView ऊंचाई को स्वत: बदलें I मेरे पास एक UICollectionView है, एक बटन जो संग्रह दृश्य में एक नया सेल बनाता है। और मैं UICollectionView को इसके आकार के आकार के अनुसार अपने आकार को समायोजित करना चाहता हूं (जब एक या दो कोशिकाएं होती हैं तो UICollectionView छोटा होता है, यदि बहुत सारे सेल UICollectionView पर्याप्त हैं)।अपनी सामग्री आकार

मुझे पता है कि सामग्री आकार पाने के लिए:

collectionView.collectionViewLayout.collectionViewContentSize

लेकिन मैं जहां इस मान का उपयोग करने के लिए पता नहीं है। मैं सराहना करता हूं अगर कोई मुझे यह समझने में मदद करता है कि UICollectionView ऑटो को इसकी ऊंचाई समायोजित कैसे करें।

युपीडी: मैं GitHub पर प्रकाशित एक डेमो परियोजना जो समस्या का वर्णन: https://github.com/avokin/PostViewer

उत्तर

6

मुझे नहीं लगता कि सामग्री का आकार है कि आप क्या कर रहे हैं के बाद है। मुझे लगता है कि आप संग्रह दृश्य द्वारा खपत स्क्रीन रीयल एस्टेट की मात्रा को समायोजित करना चाहते हैं, है ना? फ्रेम के समायोजन की आवश्यकता होगी। सामग्री आकार में ऑफ-स्क्रीन (स्क्रॉलिंग) क्षेत्र के साथ-साथ स्क्रीन दृश्य भी शामिल है।

मैं कुछ भी है कि आप बस मक्खी पर फ्रेम आकार बदलने से रोका जा सके की पता नहीं है:

collectionView.frame = CGRectMake (x,y,w,h); 
[collectionView reloadData]; 

मैं तुम्हें सही ढंग से समझ रहा हूँ तो।

+1

मेरे पास इस तरह का कोड है: 'cell.tagsCollection.frame = CGRectMake (frame.origin.x, frame.origin.y, size.width, size.height);'। लेकिन संग्रह को देखने से पहले View.frame ऊंचाई और चौड़ाई 0 है और आईओएस इन विशेषताओं के मेरे परिवर्तनों को अनदेखा करता है – AVokin

+0

सेल ऊंचाई वार सामग्री कैसे बनाएं –

6

संग्रह दृश्य के लिए ऊंचाई बाधा का उपयोग करें और आवश्यकता होने पर सामग्री ऊंचाई के साथ अपना मान अपडेट करें। https://stackoverflow.com/a/20829728/3414722

0

कदम UICollectionView फ्रेम बदलने के लिए:

  1. collectioview के superview के लिए हाँ करने के लिए "translatesAutoresizingMaskIntoConstraints" प्रॉपर्टी सेट (आप autolayout उपयोग कर रहे हैं)

  2. तब अद्यतन इस उत्तर देखें collectioview के फ्रेम के रूप में:

    collectionView.frame = CGRectMake (x,y,w,h); 
    [collectionView reloadData]; 
    
संबंधित मुद्दे