2012-11-18 21 views
6

के साथ ब्रेक व्यू सेट करें मैं अपने आईफोन ऐप में ऑटो लेआउट का उपयोग कर रहा हूं और UIScrollView है। मेरे ऐप्स चलते समय मुझे अपने स्क्रॉल व्यू के सामग्री आकार को कई बिंदुओं पर बदलना होगा (इसलिए में सामग्री का आकार सेट करना बेकार है क्योंकि मैंने इसे अन्य स्थानों में सुझाया है)।UIScrollView setContent ऑटो लेआउट

जब मैं इसे बदलता हूं, तो मेरे सबव्यूज़ कूदते हैं, संभवतः क्योंकि यह ऑटो लेआउट बाधाओं को तोड़ देता है।

तो मैं ऑटो लेआउट सक्षम के साथ अपने स्क्रॉलव्यू सामग्री आकार को बदलने के लिए कैसे जा सकता हूं?

धन्यवाद।

+0

इसे देखने में प्रयास करें DidAppear देखने के बजाय WillAppear – sunkehappy

+0

क्षमा करें अगर मैं स्पष्ट नहीं था। जब मैं लोड लोड/प्रतीत होता हूं तो मैं निश्चित रूप से सामग्री आकार सेट करता हूं, लेकिन मुझे अपने स्वयं के तरीकों में लोड/प्रकट होने के बाद इसे एक ही दृश्य में कई बार बदलने की आवश्यकता होती है। यह मेरा मुद्दा है। –

+0

1. शायद आपका विचार ऑटो लेआउट के लिए बहुत जटिल है। 2. आपने सही ऑटो लेआउट बाधाओं को निर्दिष्ट नहीं किया है, कुछ अन्य बाधाओं को आजमाएं। 3. मैन्युअल रूप से अपने सबव्यू लेआउट को देखने के लिए viewWillLayoutSubviews में कोड का उपयोग करें। – sunkehappy

उत्तर

14

मैं इस एक ही समस्या आ रहा था, और मैं जानता हूँ कि यह अंतिम समाधान नहीं हो सकता है, लेकिन अब के लिए, बल्कि viewWillLayoutSubviews में इस बुला, viewDidLayoutSubviews अंदर कोड डाल कर की तुलना में यह मुझे अनुमति सामग्री सेट करने के लिए दृश्य के बाद आकार नियंत्रक ने यह डिफ़ॉल्ट व्यवसाय किया :)

आशा है कि मदद करता है।

0

viewWillLayoutSubviews में अपना कोड टेस्ट करें। ऐप्पल का कहना है:

जब दृश्य की सीमाएं बदलती हैं, तो दृश्य सबव्यूज़ की स्थिति समायोजित करता है। दृश्य दृश्य से पहले परिवर्तन करने से पहले आपका व्यू कंट्रोलर इस विधि को ओवरराइड कर सकता है। डिफ़ॉल्ट विधि इस विधि के कार्यान्वयन में कुछ भी नहीं है।

UIViewController Class Reference