Sunday 15 July 2012

ios - UILabel - setting frame on rotation -


मैं पता रोटेशन पर एक यूआईएलबल के फ्रेम को कैसे परिवर्तित करें।

मेरा सवाल है, जब एक UILabel एक और UIView है, जो एक पेजिंग सक्षम scrollview की एक subview है की एक subview है, वहाँ एक स्मार्ट जिस तरह से रोटेशन पर UILabel केंद्रित करने के लिए है?

ScrollView - & gt; 3 x UIView (3 पृष्ठ) - & gt; प्रत्येक UIView में एक UILabel सबव्यूव है।

चित्र में सभी ठीक हैं, घुमाए जाने पर, मुझे स्पष्ट रूप से प्रत्येक लेबल के फ्रेम सेट करना है।

मैंने जोड़ने की कोशिश की है: < / P>

  [myLabel सेटअटोरिजिंगमास्क: UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin];   

लेकिन यह काम नहीं कर रहा है, मैं सिर्फ यह चाहता हूं कि लेबल्स UIView में केंद्रित हों चाहे कोई भी रोटेशन हो। UIViews पहले से ही खुद को सही ढंग से आकार परिवर्तन

मैं की तर्ज पर कुछ इस्तेमाल करने की कोशिश की थी।

 <कोड> [mylabel setCenter: CGPointMake (myView.frame.size.width / 2 , MyView.frame.size.height / 2)];   

और विधि में इस रखा: - (शून्य) willAnimateRotationToInterfaceOrientation: (UIInterfaceOrientation) toInterfaceOrientation अवधि: (NSTimeInterval) अवधि

हालांकि इस रूप में, अच्छी तरह से काम नहीं कर रहा

सुनिश्चित नहीं हैं कि स्क्रॉल दृश्य मेरे उत्तर को प्रभावित करेगा। लेकिन अगर आप अपनी superview अंदर (क्षैतिज) एक UILabel केंद्रित करने के लिए चाहते हैं, निम्नलिखित कोड काम करेंगे

  - (शून्य) viewDidLoad {// Init लेबल // मान लें कि आप अपने आकार चाहते हैं 100 x 30 हो और इसका पर्यवेक्षण v0 लेबल है। फ्रेम = सीजीआरएक्टमेक ((v0.width - 100) / 2, 10, 100, 30); Label.autoresizingMask = UIViewAutoresizingMaskFlexibleLeftMargin | UIViewAutoresizingMaskFlexibleRightMargin; [V0 ऐड एस्यूब्यूव्यू: लेबल]; // रोटेशन को स्पष्ट रूप से कहीं और संभालने की कोई आवश्यकता नहीं है)   

v0.width के उपयोग की सूचना: सोचा कि यह दृश्य लोड होने पर शून्य हो सकता है, यह विधि अभी भी काम करता है प्रारंभिक मूल्य नहीं बात वास्तव में।

आप कुछ विशेष है कि autoresizingMask मदद नहीं कर सकता क्या करने की जरूरत है, तो बस layoutSubviews जो शुरू हो जाती है ओवरराइड करता है जब रोटेशन होता है पिछले समाधान निरीक्षण करने के लिए है फ्रेम दृश्य (जैसे कि यदि आप एक UIViewController के साथ काम नहीं कर रहे हैं और यह नहीं है हाथ में layoutSubviews है ...) की संपत्ति

No comments:

Post a Comment