2012-10-22 12 views
8

मैं दृश्य नियंत्रक लोड होने पर इसे 0 पर सेट करके एक UICollectionView ऊंचाई का आकार बदलने का प्रयास कर रहा हूं, फिर बटन दबाए जाने पर एनीमेशन के साथ अपना आकार बढ़ा रहा हूं। मैंने कुछ अलग चीजों की कोशिश की है लेकिन यह आकार में बिल्कुल नहीं बदलता है।UICollectionView ऊंचाई का आकार बदलें

CGRect bounds = [self.collectionView bounds]; 
[self.collectionView setBounds:CGRectMake(bounds.origin.x, 
              bounds.origin.y, 
              bounds.size.width, 
              bounds.size.height - 100)]; 

....

CGRect frame = [self.collectionView frame]; 
[self.collectionView setFrame:CGRectMake(frame.origin.x, 
           frame.origin.y, 
           frame.size.width, 
           frame.size.height - 100)]; 

....

CGRect frame = self.collectionView.frame; 
frame.size.height -= 100; 
self.collectionView.frame = frame; 

....

: यहाँ सब अलग अलग बातें मैं 0 करने के लिए अपनी ऊंचाई बदलने के लिए कोशिश की है है
self.collectionView.clipsToBounds = YES; 
self.collectionView.autoresizingMask = UIViewAutoresizingFlexibleHeight; 
+0

'self.collectionView' वास्तव में कुछ करने के लिए सेट है? क्या आप ऑटोलाउट का उपयोग कर रहे हैं? – mattjgalloway

+0

मैंने संग्रह दृश्य को आउटलेट के रूप में सेट किया है। हाँ ऑटोलाउट चालू है। –

+5

यदि आप ऑटोलाउट का उपयोग कर रहे हैं तो आपको फ्रेम को सीधे बदलने के बजाय बाधाओं को बदलना होगा। आप संग्रह दृश्य पर ऊंचाई बाधा सेट करना चाहते हैं। – mattjgalloway

उत्तर

4

यदि आप UICollectionView के लिए इंटरफ़ेस बिल्डर का उपयोग कर रहे हैं I nitialisation, xib फ़ाइल में फ़ाइल इंस्पेक्टर से "Autolayout का उपयोग करें" को बंद करें जहां आपका संग्रह दृश्य बनाया गया है। फिर आप सेटफ्रेम या सेटबाउंड विधियों के साथ ऊंचाई बदल सकते हैं।

+0

यह ठीक काम कर रहा है लेकिन हम पूरे आवेदन में ऑटोलाउट खो देंगे। –

+0

आप अभी भी ऑटो रीसाइजिंग क्षमताओं का उपयोग कर सकते हैं – Gokul

+1

ऑटोलाउट सक्षम के साथ इसे प्राप्त करने का कोई तरीका नहीं है? – MrBr

2

आप ऊंचाई बाधा के लिए आउटलेट बनाकर और फिर कोड में बाधा के स्थिरता को समायोजित करके ऑटोलायआउट को अक्षम करने से बच सकते हैं।

आउटलेट

@IBOutlet weak var collectionViewVerticalConstraint: NSLayoutConstraint! 

समायोजन

collectionViewVerticalConstraint.constant = 0 
संबंधित मुद्दे