में सबव्यूज़ को बाहर निकालना और आकार देना मेरे पास UITabController
के साथ एक ऐप है और प्रत्येक टैब UINavigationController
है। मेरे UINavigationControllers
में से एक की रूट UIViewController
है।UIViewController
उस दृश्य नियंत्रक के दृश्य के अंदर, मैं कुछ सबव्यूज़ लेआउट करना चाहता हूं, लेकिन मैं & कहां से बाहर निकलना चाहता हूं कि उन्हें संकल्प स्वतंत्र कैसे किया जाएगा (यानि 320px, 480px जैसे हार्डकोड मान नहीं, 44 पीएक्स, आदि)।
जब दृश्य पूरी तरह से लोड और लंबवत आईफोन पर प्रस्तुत किया जाता है, तो इसकी ऊंचाई 367px = 480 - 20 (स्टेटस बार) - 44 (एनएवी बार) - 49 (टैब बार) होगी।
व्यू कंट्रोलर के अंदर, मैं वर्तमान में viewDidLoad
विधि के भीतर अपने सभी सबव्यूव्यूज़ तैयार करता हूं। हालांकि, ऐसा लगता है कि इस विधि के भीतर, दृश्य की वर्तमान ऊंचाई 460px (self.view.bounds.size.height
) है। तो जब मेरे सबव्यूव्स सेट अप करते हैं, तो मैं कुछ भी आकारों की उचित गणना नहीं कर सकता।
viewWillAppear:
विधि के भीतर, दृश्य यह उचित आकार है पता है, लेकिन वह & की स्थापना हर बार दृश्य दिखाई देगी (जैसे टैब परिवर्तन की गणना subview के फ्रेम या नेविगेशन ढेर पर बच्चे को देखने के नियंत्रकों से पॉपिंग का मतलब होगा।
viewWillAppear:
?
में लेआउट के लिए ठीक से यह करने के लिए एक ही रास्ता मैं autoresizing गुण का उपयोग कर की कोशिश की है है (माता-पिता की autoresizesSubviews
& autoresizingMask
) लेकिन वे सब पर काम करने के लिए !? इन करें नहीं है एक बार दृश्य सभी सेटअप होने के बाद ही प्रभावी हो जाते हैं और फिर इसका आकार बदल जाता है (मैन्युअल/अभिविन्यास परिवर्तन?)।
मैं आभारी हूं अगर कोई मुझे बता सके कि ऑटोरेसाइजिंग क्यों काम नहीं कर रही है, और किसी भी आकार को हार्डकोडिंग से चीजों को कैसे रखना है।
त्वरित स्पष्टीकरण, UIViewController के पास नहीं है, न ही लेआउट सबव्यूव्यूज़ को कॉल करें। यह UIView पर एक विधि है। हालांकि, आप लेआउटसब्यूव्यू नामक एक विधि बना सकते हैं और इसे देखने से कॉल करें WillAppear: – casademora
या तो "लोड व्यू" नहीं है। मुझे लगता है कि आपका मतलब है "viewDidLoad", इस मामले में दृश्यों को देखने के लिए उन विचारों को रिलीज़ करने के लिए उल्लेखनीय है। – DougW
एक लोडव्यू विधि है लेकिन देखेंडिडलोड आमतौर पर सबव्यूज़ –