2011-07-28 10 views
5

पर छवि प्रदर्शित करें मैं छवि के मूल आकार के लिए छवि दृश्य के लिए फ्रेम सेट करने और इसे देखने के केंद्र में प्रदर्शित करने की कोशिश कर रहा हूं। मैंने इसके लिए निम्नलिखित कोड लिखा है लेकिन छवि अभी भी पूरी स्क्रीन में दिखाई देती है! मान लीजिए कि छवि का आकार 320x88 है, यह आकार बदलता है/320x460 तक फैला हुआ है! मैं इसे स्क्रीन के केंद्र में दिखाना चाहता हूं इसलिए मैंने वाई समन्वय (460-88)/2 सेट किया लेकिन यह काम नहीं करता है। क्या कोई इसे हल करने में मेरी मदद कर सकता है। धन्यवाद।आईफोन: अपने मूल आकार

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:filePath]]; 

if(imageView.image.size.width == IPHONE4_RES_WIDTH) 
    [imageView setFrame: CGRectMake(0, 0, imageView.image.size.width/2, imageView.image.size.height/2)]; 

UIViewController *viewController = [[[UIViewController alloc] init] autorelease]; 
viewController.view.backgroundColor = [UIColor blackColor]; 

NSLog(@"%f : %f",viewController.view.bounds.size.height, imageView.bounds.size.height); 

viewController.view = imageView; 
viewController.view.contentMode = UIViewContentModeCenter; 

[self.navigationController pushViewController:viewController animated:YES]; 

उत्तर

12

.. इस

viewController.view.contentMode=UIViewContentModeCenter; 
+0

हाय राकेश, काम करता है, लेकिन अगर छवि iPhone 4 संकल्प चौड़ाई है, मैं imageView के फ्रेम की स्थापना का उपयोग कर आधी चौड़ाई की जरूरत है कि लेकिन ऐसा कोई फर्क नहीं पड़ता है! छवि स्क्रीन के केंद्र में दिखाई देती है लेकिन इसकी चौड़ाई 640 (आईफोन 4 res) है! क्या मैं इस मुद्दे को संबोधित कर सकता हूं? मेरा संपादित कोड देखें। धन्यवाद। – applefreak

+0

इसके अलावा मुझे अपने दृश्य का पृष्ठभूमि रंग काला नहीं दिख रहा है! – applefreak

+0

मैंने आपके मूल प्रश्न के आधार पर आपका उत्तर स्वीकार कर लिया है। मैंने कोड पोस्ट किया है जो आईफोन 4 आकार और पृष्ठभूमि रंग के मुद्दों का ख्याल रखता है! धन्यवाद। – applefreak

2

आप UIImageView सेट कर सकते हैं छवि को फैलाने के लिए नहीं की कोशिश करते हैं तो भी यह पूर्ण आकार जब आप सेट यह केंद्र में छवि प्रदर्शित करेगा है

imageView.contentMode = UIViewContentModeCenter 
+0

धन्यवाद। यह भी काम करता है! लेकिन मैं राकेश के जवाब के जवाब में आईफोन 4 आकार के मुद्दे को हल करने में सक्षम नहीं हूं। क्या मैं इससे छुटकारा पा सकता हूं? – applefreak

0

मेरी आवश्यकताओं के लिए पूरी तरह से काम करता है!

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:filePath]]; 

// Reduce the width and height for iPhone 4 res 
if(imageView.image.size.width == IPHONE4_RES_WIDTH) 
    [imageView setFrame: CGRectMake(0, 0, imageView.image.size.width/2, imageView.image.size.height/2)]; 


UIViewController *viewController = [[[UIViewController alloc] init] autorelease]; 
viewController.view.backgroundColor = [UIColor blackColor]; 

float X = (viewController.view.bounds.size.width - imageView.bounds.size.width)/2; 
float Y = (viewController.view.bounds.size.height - imageView.bounds.size.height)/2 - 50; // Size of tabbar and navigation bar deducted 

NSLog(@"(%f, %f) : (%f,%f)",X,Y,imageView.bounds.size.width,imageView.bounds.size.height); 

[viewController.view addSubview:imageView]; 

//viewController.view = imageView; 
//viewController.view.contentMode = UIViewContentModeCenter; 

// Set in the center of the screen 
if(imageView.image.size.width == IPHONE4_RES_WIDTH) 
    [imageView setFrame: CGRectMake(X, Y, imageView.image.size.width/2, imageView.image.size.height/2)]; 
else 
    [imageView setFrame: CGRectMake(X, Y, imageView.image.size.width, imageView.image.size.height)]; 

[self.navigationController pushViewController:viewController animated:YES]; 
2

storyboard फ़ाइल में इसे प्राप्त करने का प्रयास करते समय इस प्रश्न में भाग लें। बस एक अतिरिक्त के रूप: एक ही बात के लिए स्टोरीबोर्ड में आप UIImageView की Mode = Center का चयन कर सकते

enter image description here

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

  • कोई संबंधित समस्या नहीं^_^