2010-09-10 5 views
10

क्या कोई इस निश्चित रूप से उत्तर दे सकता है? ऐसा लगता है कि कभी-कभी UIImageView के फ्रेम को बदलने से इसकी छवि का आकार बदलता है और कभी-कभी ऐसा नहीं होता है।आईओएस - UIImageView के फ्रेम को बदलना चाहिए अपनी छवि का आकार बदलें?

मैंने एक छवि लोड की है और इसके साथ UIImageView बनाया है, लगभग 100x100 आकार का है। निम्न कार्य पूरी तरह से कोई प्रभाव नहीं है:

myImageView.contentMode = UIViewContentModeScaleAspectFit; 
myImageView.frame = CGRectMake(0, 0, 30, 30); 

जाहिर है मैं छवि नीचे हटना चाहते हैं, लेकिन यह सिर्फ पूर्ण आकार बनी हुई है।

संपादित करें: मैं ऐसा करते हैं तो:

myImageView.clipsToBounds = YES; 

मैं छवि का एक काटा 30x30 भाग है, लेकिन केवल यह के ऊपरी कोने मिलता है। मैं पूरी छवि को 30x30 तक कैसे छोटा कर सकता हूं?

उत्तर

2

हाँ, आप सही काम कर रहे हैं। इस तरह इस्तेमाल किए गए contentMode को छवि को आपके दृष्टिकोण में संरक्षित पहलू के साथ आकार में रखना चाहिए। और स्पष्ट रूप से फ्रेम को बदलना दृश्य को स्थानांतरित करना और आकार बदलना चाहिए।

क्या आप सुनिश्चित हैं कि कुछ और नहीं है? myImageView शून्य किसी कारण से यहाँ है? (यदि यह एक इंटरफ़ेस बिल्डर-निर्मित दृश्य है, तो क्या आउटलेट हुक हो गया है?)

+0

यह निश्चित रूप से शून्य नहीं है, जैसा कि यह स्क्रीन पर दिखाई देता है और मैं क्लिप को इस पर सेट कर सकता हूं। – sol

1

आपको लगता है कि यह काम करेगा, लेकिन हर जगह लोगों को एक ही समस्या है। केवल समय मैं यह काम देखा है, ऑटो स्केलिंग द्वारा नहीं है, यह वास्तव में आकार बदलने और छवि पुनः बनाकर दिया गया है: How to scale a UIImageView proportionally?

1

इस प्रयास करें:

myImageView। सीमा = CGRectMake (0, 0, 30, 30);

मुझे छवि को स्केल करने के लिए UIImageView के फ्रेम को बदलने के साथ भाग्य नहीं है। इसके बजाय सीमा को बदलने का प्रयास करें।

3

पुराना सवाल, लेकिन मेरे मामले में समस्या दृश्य नियंत्रक के लिए "viewDidLoad" में संशोधन करने की कोशिश कर रही थी। फ्रेम को "viewDidLayoutSubviews" में बदलने का प्रयास करें।

- (void)viewDidLayoutSubviews 
{ 
    //do uiimageview frame changing here 
    ... 
} 
संबंधित मुद्दे