2016-02-26 10 views
9

मैं पंक्ति में कोशिकाओं के बीच आकार को कम करना चाहता हूं।UICollectionView में कक्षों के बीच स्थान कैसे बदलें?

enter image description here

मैं इस कोशिश कर रहा हूँ, के लिए उन दोनों के बीच के आकार को कम:

let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() 
layout.sectionInset = UIEdgeInsets(top: 20, left: 2, bottom: 10, right: 2) 
layout.minimumInteritemSpacing = 0 
layout.minimumLineSpacing = 0 

लेकिन यह मेरी मदद नहीं करता है अब यह तरह दिखता है। मैं क्या गलत करता हूँ?

+1

@patchdiaz यह एक डुप्लिकेट नहीं है! मैंने इस संस्करण की कोशिश की है, लेकिन यह काम नहीं करता है। यही कारण है कि मैंने यह प्रश्न –

+0

बनाया है आप सही हैं! हटाया गया;) – fdiaz

+0

क्या आप चाहते हैं कि आपकी कोशिकाएं बाएं-गठबंधन हों, यानी आपके पास दाईं ओर बहुत खाली जगह होगी? –

उत्तर

17
//Objective c 
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { 
     return CGSizeMake((collectionView.frame.size.width/3)-20, 100); 
    } 

// Swift 2.0 

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 
    return CGSizeMake((collectionView.frame.size.width/3) - 20, 100) 
} 

// Swift 3.0 
override func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
    return CGSize(width: CGFloat((collectionView.frame.size.width/3) - 20), height: CGFloat(100)) 
} 
+2

@ZacharyGover के साथ एक पंक्ति में आप इस "दावे" का बैक अप ले सकते हैं विश्वसनीय स्रोत? अधिकांश सेब मॉड्यूल अभी भी उद्देश्य-सी में लिखे गए हैं, और आज भी इसका व्यापक रूप से उपयोग किया जाता है। – JAL

+0

मुझे नहीं लगता कि उद्देश्य-सी लगभग अप्रचलित हो रहा है। अभी भी विकास के चेहरे में तेजी से। कुछ जगह पर अभी भी ओब्जे-सी स्विफ्ट से बेहतर है। ओबीजे-सी में विकसित लिब ब्रिजिंग का उपयोग कर तेजी से उपयोग किया जाता है ...... !!!! मुझे उम्मीद है कि आप इसे जानते हैं ... !! :) –

+0

आप जानते हैं कि मैंने लगभग अप्रचलित हो रहा है? हां कुछ चीजें अभी भी उद्देश्य-सी के आसपास लिखी गई हैं, हालांकि ऐप्पल स्विफ्ट को अपडेट कर रहा है, इसलिए वे इसे फिर से लिख रहे हैं। हालांकि इसका अभी भी मतलब है कि अधिकांश डेवलपर्स स्विफ्ट में लिख रहे हैं। मेरा मुख्य बिंदु जिसे मैं पार करने की कोशिश कर रहा था, दोनों जवाब देने के लिए है, जैसा आपने अभी किया है। क्योंकि जल्द ही यह अप्रचलित हो जाएगा, और भविष्य में लोग इसे समझने में सक्षम नहीं होंगे अगर वे प्रोग्रामिंग के लिए नए हैं, जब वे मदद के लिए इस पोस्ट को देखते हैं। – Zach

9

, स्टोरीबोर्ड पर जाएं सही संग्रह देख सकते हैं और enter image description here

पर क्लिक करें और सेल के बीच अपने न्यूनतम रिक्ति की जाँच करें और शून्य करने के लिए इसे कम।

+2

मैंने इसे पहले से ही किया था। –

+0

की मदद नहीं की गई अब UIcollectionview सेल में समस्या हो सकती है ..... UICollectionview सेल में बाधाओं की जांच करें ...... पैडिंग के किसी भी समय नहीं होना चाहिए, बाकी मुझे आपके कोड –

+1

पर जाने की आवश्यकता है कहानी बोर्ड में दो खंड हैं संग्रह संग्रह है और संग्रहदृश्य के तहत संग्रहदृश्य प्रवाह लेआउट है .... क्या आपने दोनों में न्यूनतम अंतर की जांच की है? –

0

आप StoryBoard या Xib में CollectionView बनाते हैं, तो StoryBoard या Xib में जाओ और

enter image description here

+0

क्या आप इसे प्राप्त करने के बारे में कुछ उदाहरण कोड दे सकते हैं? \ – pczeus

+0

नहीं, मैंने इसे XIB से सेट नहीं किया है। एक्सआईबी पर मैंने संग्रह दृश्य कक्ष सेट किया है –

3

से इन मूल्यों को निर्धारित अपने कोड पर, आप अपने संग्रह को देखने के लिए एक IBOutlet बनाने के लिए, और उसके बाद आवंटित जैसे collectionViewLayout:

let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() 
layout.sectionInset = UIEdgeInsets(top: 20, left: 2, bottom: 10, right: 2) 
layout.minimumInteritemSpacing = 0 
layout.minimumLineSpacing = 0 
collectionView!.collectionViewLayout = layout 
+0

आप मेरे हीरो हैं। – BEm

1

इसका सरल

let layout = contactsCollectionView.collectionViewLayout as? UICollectionViewFlowLayout 
layout?.minimumLineSpacing = 8 
संबंधित मुद्दे