2009-01-25 5 views
6

मैं आईफ़ोन प्रोग्रामिंग में नया हूं और मैं यह समझने की कोशिश कर रहा हूं कि फ्रेम और सीमाएं कैसे काम करती हैं। इंटरफेस बिल्डर में, मैंने UIView बनाया जहां मैंने UIImageView को बच्चे के रूप में रखा। मैंने UIImageView को मूल दृश्य से बड़ा बनाया। और अभिभावक UIView के लिए 'क्लिप सबव्यू' संपत्ति को सत्य पर सेट करें और बच्चे UIImageView के लिए झूठी है।
जब मैं frame.origin बच्चे UIImageView प्रोग्रामेटिक रूप से बदलता हूं। लेकिन जब मैं bounds.origin माता-पिता UIView की संपत्ति बदलता हूं तो मुझे कुछ भी नहीं दिखाई देता है। शायद मैं bounds के उद्देश्य को गलत तरीके से समझता हूं।UIView की बदलती सीमा संपत्ति इसकी सामग्री को प्रभावित नहीं करती है

क्या मैं व्यवहार iPhone आवेदन प्रोग्रामिंग गाइड में वर्णित पाने के लिए क्या करना चाहिए:

आप अन्य दो गुणों को बदलने के बिना सीमा मूल बदल सकते हैं। जब आप करते हैं, तो दृश्य अंतर्निहित छवि के हिस्से को प्रदर्शित करता है जिसे आपने पहचाना है। InFigure2-4 (पृष्ठ 56), मूल सीमा मूल (0.0,0.0) पर सेट है। चित्रा 2-5 में, उस उत्पत्ति को स्थानांतरित किया गया है (8.0,24.0)। परिणामस्वरूप, अंतर्निहित छवि का एक अलग भाग दृश्य द्वारा प्रदर्शित होता है। चूंकि फ्रेम आयताकार नहीं बदला गया था, हालांकि, नई सामग्री को पहले जैसा ही मूल दृश्य के अंदर उसी स्थान पर प्रदर्शित किया गया है।

अग्रिम धन्यवाद। एंड्रयू

उत्तर

0

सबसे पहले, सुनिश्चित करें कि आप अपनी सीमाओं को बदलने का प्रयास करने से पहले छवि दृश्य का उचित संदर्भ लें। जांचें कि यह nil नहीं है।

दूसरे, आप इस तरह एक अलग बयान में आयत को बदलने और उसके बाद यह सेट फिर से, करने के लिए आवश्यकता हो सकती है:

CGRect rect = imageView.bounds; 
rect.origin = CGPointMake(whatever, whatever); 
imageView.bounds = rect; 

सीमा भी तुम क्या चाहते हो नहीं सकता है। मुझे नहीं पता कि आपको यह उद्धरण कहां मिला, लेकिन यह सही नहीं लगता है। इसे अपने पर्यवेक्षण में रखने के लिए छवि दृश्य के फ्रेम का उपयोग करने का प्रयास करें।

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