मैं Xcode 6 बीटा 3, iOS 8 SDK का उपयोग कर रहा हूं। स्विफ्ट का उपयोग करके लक्ष्य iOS 7.0 बनाएँ। कृपया नीचे स्क्रीनशॉट के साथ कदम से कदम मेरी समस्या को देखें।
मेरे पास स्टोरीबोर्ड में एक UICollectionView है। 1 प्रोटोटाइप UICollectionViewCell जिसमें केंद्र में 1 लेबल होता है (कोई ऑटोराइज़िंग नियम नहीं)। पर्पल बैकग्राउंड एक contentView को चिह्नित करने के लिए था जो सेल I के अनुमान से रनटाइम में उत्पन्न होता है। उस दृश्य को मेरे UICollectionViewLayoutDelegate पर ठीक से आधार पर फिर से आकार दिया जाएगा, लेकिन iOS 7 पर नहीं। ध्यान दें कि मैं Xcode 6 का उपयोग कर रहा हूं और समस्या केवल iOS 7 पर होती है।
जब मैं iOS 8 पर ऐप बनाता हूं। सब कुछ ठीक है।
नोट: बैंगनी contentView है , नीला गोल कोने वाला मेरा UIButton है।
हालाँकि, iOS 7 पर, सेल के अंदर सभी उप-दृश्य अचानक (0,0,50,50) के फ़्रेम में सिकुड़ जाते हैं और कभी भी मेरे ऑटोरेस्ज़िंग नियम के अनुरूप नहीं होते हैं।
मुझे लगता है कि यह iOS 8 SDK या स्विफ्ट या शायद Xcode में एक बग है?
अद्यतन 1: यह समस्या अभी भी आधिकारिक Xcode 6.0.1 में मौजूद है! आसपास का सबसे अच्छा काम वैसा ही है जैसा कि KoCMoHaBTa ने सेल के सेलफोर इटेम में फ्रेम सेट करके नीचे सुझाव दिया है (आपको हालांकि अपने सेल को उप-वर्ग करना होगा)। यह पता चला कि यह iOS 8 SDK और iOS 7 के बीच असंगतता है (Apple से उद्धृत नीचे Ecotax का उत्तर)।
अपडेट 2: इस कोड को अपने सेलफ़ोरइम की शुरुआत में पेस्ट करें और चीजें ठीक होनी चाहिए:
/** Xcode 6 on iOS 7 hot fix **/
cell.contentView.frame = cell.bounds;
cell.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
/** End of Xcode 6 on iOS 7 hot fix **/
contentView
सेल के साथ आकार लेने के लिए बाध्य करने के लिए डैनियलपल्मन का जवाब समस्या को हल करने के लिए ठीक काम करता है। मुझे लगता है कि आईओएस 8 में ऐप्पल ने इंटरफ़ेस बिल्डर (जो अभी भी एक ब्लैक बॉक्स का थोड़ा सा हिस्सा है) में निर्मित होने पर सेल सामग्री के विचारों को संभालने के तरीके के बारे में कुछ बदल दिया है। लेकिन यह तथ्य कि आईओएस 7 को लक्षित करते समय यह व्यवहार को बदलता है, निश्चित रूप से एक बग है।
contentView
किनारों को सेल किनारों पर पिन करके ठीक करता हूं ।