2012-08-15 7 views
13

जब आप स्टोरीबोर्ड या इंटरफ़ेस बिल्डर में uiimageview के लिए कोई छवि सेट करते हैं, तो यह मूल UIImageView के आकार को बरकरार रखता है, जिसका अर्थ है कि छवि स्वयं पूरी तरह से विकृत हो जाती है।क्या इंटरफ़ेस बिल्डर/स्टोरीबोर्ड में UIImageView को स्वतः आकार देने का कोई तरीका है?

UIImageView के आकार को अपनी छवि में मिलान करने के लिए, मुझे फ़ाइल इंस्पेक्टर से मैन्युअल रूप से आकार में प्रवेश करना होगा।

क्या कोई तरीका है कि UIImageView स्वचालित रूप से अपनी छवि के मूल आकार का पता लगा सकता है और उसके अनुसार अपना आकार आकार दे सकता है?

उत्तर

45

मैं तुम्हें स्टोरीबोर्ड/आईबी में लेआउट की बात कर रहे संभालने कर रहा हूँ। छवि का मूल आकार प्राप्त करने के लिए बस छवि का चयन करें और कीबोर्ड पर कमांड + = दबाएं। इसे फिर से आकार देने के लिए आनुपातिक रूप से कोने का चयन करें और जब आप इसे फिर से आकार दें तो शिफ्ट कुंजी दबाए रखें।

+0

ग्रेट शॉर्टकट! क्या आधे आकार के मूल आकार (@ 2x रेटिना छवियों के लिए) पर छवि सेट करने का कोई तरीका है? – zakdances

+0

जब तक आप कुछ असामान्य नहीं कर रहे हैं तब तक आपको रेटिना रिज़ॉल्यूशन के लिए खाते की आवश्यकता नहीं है। आईओएस स्वचालित रूप से @ 2x छवि को सही आकार में बदल देगा। आईबी में बस गैर-रेटिना छवि का उपयोग करें। –

+0

यह एक महान टाइमवेवर है, धन्यवाद। –

1

उपयोग contentMode

 imageView.contentMode = UIViewContentModeScaleAspectFit; 

संपादित: मैं सिर्फ देखा आप छवि के लिए imageViews आकार समायोजित करना चाहते हैं लगता है .... अलग तो

2

तुम क्यों निर्धारित नहीं करते कोड में आपके uiimageview का आकार? यहाँ आप क्या करने की जरूरत है ...

//get the Image 
UIImage *img = [UIImage imageNamed:@"img.png"]; 

CGFloat x = img.origin.x; 
CGFloat y = img.origin.y; 
CGFloat width = img.size.width; 
CGFloat height = img.size.height; 
imageView.frame = CGRectMake(x, y, width, height); //imageView is your uiimageview's reference 
+0

क्या स्टोरीबोर्ड/आईबी इंटरफ़ेस के माध्यम से ऐसा करने का कोई तरीका नहीं है? – zakdances

+0

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

-3

यह मैं क्या किया है:

imageView.clipsToBounds = YES; 
[imageView setContentMode: UIViewContentModeScaleAspectFit]; 

मेरे लिए काम कर रहा है यही कारण है कि।

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

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