2009-07-06 16 views
82

में UIView का आकार बदल नहीं सकता है शायद कुछ आसान है, लेकिन मुझे नहीं पता कि मैं इंटरफ़ेस बिल्डर में xib में UIView का आकार क्यों नहीं बदल सकता।आईबी

मैंने एक्सकोड में एक्सआईबी और आकार निरीक्षक में एक नया दृश्य बनाया है, चौड़ाई और ऊंचाई अक्षम हो गई है और 320 तक 460 तक ग्रे हो गई है। यह अजीब बात है क्योंकि मैं दूसरे दो विचारों के लिए आकार बदल सकता हूं (इसके साथ जुड़े अन्य दो टैब बार आइटम)।

मुझे यकीन है कि अगर यह से कोई लेना देना नहीं है नहीं कर रहा हूँ, लेकिन मैं हाल ही में करने के लिए 3.

धन्यवाद एसडीके अद्यतन!

उत्तर

78

मुझे लगता है कि आप आकार संपादित नहीं कर सकते, जबकि इस तरह के इंटरफ़ेस बिल्डर में स्थिति पट्टी के रूप में किसी भी उपयोगकर्ता इंटरफ़ेस तत्वों का अनुकरण। यदि कोई सक्षम है तो आप अनुरूपित तत्वों को बंद करने का प्रयास कर सकते हैं। बिल्कुल यकीन नहीं है कि यह क्यों है, इसलिए किसी से भी प्रतिक्रिया की सराहना करेंगे जो जानता है कि यह वास्तव में क्यों है - एक अच्छा कारण होना चाहिए।

+1

धन्यवाद यह सही है। एक्सकोड और आईबी को अपग्रेड करने के बाद स्टेटस बार डिफ़ॉल्ट रूप से चालू था। दूसरों ने इसे बंद कर दिया है। –

+0

आप दोनों को +1 .. !! –

+1

एक्सकोड 4.2 के रूप में, आईओएस 5.0.1 यह बदल गया है। नीचे मेरा जवाब बताता है कि यह कैसे प्राप्त किया जा सकता है। – lol

40

जो भाग आप खोज रहे हैं वह पहले इंस्पेक्टर पैनल (कमांड -1) पर है। शीर्ष पर दाईं ओर एक अनुभाग है जिसे सिम्युलेटेड यूजर इंटरफेस एलिमेंट्स लेबल किया गया है। डिफ़ॉल्ट रूप से स्टेटस बार चालू है। आपको यह सुनिश्चित करने की ज़रूरत है कि सभी तीन किसी के लिए सेट नहीं हैं।

+2

नापसंद करता हूं धन्यवाद, इन उत्तरों ने मुझे बस एक टन बचाया! किसी को पता है कि आईबी ऐसा क्यों करता है? – Gregor

+0

+1 यह मुझे पागल कर रहा है! धन्यवाद! – Bogatyr

+0

धन्यवाद दोस्त। मैं उस की तलाश में हूं। – natanavra

4

बस इंस्पेक्टर पर जाएं, पहले पैनल (या प्रेस कमांड -1) पर जाएं और फिर "सिम्युलेटेड यूजर इंटरफेस एलिमेंट्स" नामक अनुभाग के तहत स्टेटस बार, टॉप बार और नीचे बार चिह्नित फ़ील्ड को बदलें। उन्हें दृश्यमान बनाने के लिए आपको छोटे त्रिकोण पर क्लिक करने की आवश्यकता हो सकती है।

0

मजेदार मुझे एक ही समस्या है। मैंने xib फ़ाइल से सभी दृश्य हटा दिए हैं और एक दृश्य दोबारा जोड़ा है। स्टेटस बार को "अनिर्दिष्ट" होने के लिए सेट करें ताकि स्टेटस बार को समायोजित न किया जा सके। दृश्य, जब जोड़ा गया, x = 0, y = 0, w = 320 h = 460 के बजाय बनाया गया (0,0,320,480) जैसा कि मैंने अपेक्षा की थी। 480 को ऊंचाई बदलने और फ़ाइल के मालिक से कनेक्ट करने और पृष्ठभूमि के संबंध में इसे विशिष्ट बनाने के लिए रंग बदलने के बाद। मैं झुकाता हूं कि स्क्रीन के शीर्ष और दृश्य के बीच एक सफेद बैंड था। मैं के साथ मेरी कोड संवर्धित:

#define RECTLOG(rect) (NSLog(@"" #rect @" x:%f y:%f w:%f h:%f", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height)); 
viewDidLoad

 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    RECTLOG(self.view.frame); 
} 

भीतर

बाहर बदल जाता है दृश्य (0, 20, 320, 480) एक काम के रूप में चारों ओर के रूप में यह आईबी से भरी हुई है कि वास्तव में मैं दृश्य के फ्रेम को self.view.frame = CGRectMake (0, 0, 320, 480) के साथ रीसेट करता हूं;

मैं आईबी 3.2.5

उपयोग कर रहा हूँ मैं इस एक के लिए एक छोटे से ठीक से पता करने के लिए अच्छा लगेगा।

+3

एफवाईआई, आप एक सीजीआरईटी का प्रतिनिधित्व करने योग्य प्रिंट करने योग्य स्ट्रिंग प्राप्त करने के लिए एनएसएसटींगफ्रॉमजीजीक्ट (रेक्ट) का उपयोग कर सकते हैं। – Berry

+0

यह एक अच्छा एफवाईआई था, मैंने इसे चेक आउट किया, और आप वास्तव में एक CGPoint और CGSize से एक स्ट्रिंग मान प्राप्त कर सकते हैं! बहुत खाना बनाना, धन्यवाद। – FierceMonkey

1

मैंने देखा है कि xiv फ़ाइल बनाने के दौरान स्वचालित रूप से बनाया गया UIView आकार बदलने वाले पैनल या किनारे हैंडल से आकार नहीं बदला जा सकता है।

मैंने बस एक और UIView जोड़ने और अपने पुराने UIView से सब कुछ खींच लिया था, फिर पुराने को हटा दिया।

यह मेरे लिए समस्या हल करता है लेकिन हाँ, मुझे लगता है कि ऐप्पल को हल करने के लिए इंटरफ़ेस निर्माता के साथ अंतर्निहित समस्या है (अगर कोई गलत है तो मुझे सही करें)।

मैं एक्सकोड 4 एकीकृत इंटरफ़ेस निर्माता का उपयोग कर रहा हूं।

25

एक्सकोड 4.2, आईओएस 5.0 के रूप में।1, डिफ़ॉल्ट अनुरूपित मीट्रिक में UIViewControllers के 'आकार' विशेषता को 'इन्फ्रारेड'

यदि आप इस विशेषता को 'फ्रीफॉर्म' में बदलते हैं तो आप UIViewController में निहित UIView का आकार बदल सकते हैं जबकि स्टेटस बार को सिमुलेट करते हैं (या उस बात के लिए सिमुलेशन का किसी अन्य)

+1

आकार विशेषता अब "रेटिना 4 पूर्ण स्क्रीन" पर डिफ़ॉल्ट है, लेकिन इसे "फ्रीफॉर्म" में बदलना अभी भी काम करता है। –

63

आदेश में XCode में है कि 4.6.3/5.0.2 आप नीचे स्क्रीनशॉट पालन करने की आवश्यकता को प्राप्त करने के:

  1. के तहत 'फ़ाइल इंस्पेक्टर' -> अनटिक Use Auto Layout
  2. विशेषताएँ एस पर क्लिक करें निर्वाचक आकार के लिए Freeform चुनें &

जब लिए एक headerView बनाने यह इसलिए आवश्यक है एक tableView

enter image description here

0

मैं इसे एक अलग तरीके से हल ...

के साथ अपने xib खोलने आपका पसंदीदा टेक्स्ट एडिटर और इस लाइन को संपादित करें

 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CompassViewController"> 

CompassViewController आपकी कक्षा का नाम है जिसके साथ आप अपने निब/xib को लिंक करने का प्रयास कर रहे हैं।

बस अपने वर्ग का नाम सही कक्षा के नाम से संपादित करें और आप कर चुके हैं;)

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