2010-03-24 11 views
21

से UIImageView में एक jpg लोड हो रहा है मेरे ऐप को http सर्वर से एक छवि लोड करना है और इसे UIImageView
में प्रदर्शित करना है, मैं यह कैसे कर सकता हूं ??
मैंने कोशिश की यह:
एक्सकोड आईफोन प्रोग्रामिंग: यूआरएल

NSString *temp = [NSString alloc]; 
[temp stringwithString:@"http://192.168.1.2x0/pic/LC.jpg"] 
temp=[(NSString *)CFURLCreateStringByAddingPercentEscapes(
    nil, 
    (CFStringRef)temp,      
    NULL, 
    NULL, 
    kCFStringEncodingUTF8) 
autorelease]; 


NSData *dato = [NSData alloc]; 
dato=[NSData dataWithContentsOfURL:[NSURL URLWithString:temp]]; 
pic = [pic initWithImage:[UIImage imageWithData:dato]]; 

इस कोड को देखने के viewDidLoad में है, लेकिन कुछ भी नहीं प्रदर्शित किया जाता है! सर्वर काम कर रहा है क्योंकि मैं इससे एक्सएमएल फाइल लोड कर सकता हूं। लेकिन मैं उस छवि को प्रदर्शित नहीं कर सकता!
मुझे प्रोग्राम को प्रोग्रामेटिक रूप से लोड करने की आवश्यकता है क्योंकि इसे पारित पैरामीटर के आधार पर बदलना है! अग्रिम धन्यवाद। एंटोनियो

+0

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

+0

आपका कोड विचित्र-सा दिखने पोस्ट
टैग जोड़ने की आवश्यकता नहीं है, stringwithString: एक वर्ग विधि है, इसलिए मुझे लगता है कि मूल रूप से [अस्थायी stringwithString: "@ http: // 1 9 2.168.1.2x0/तस्वीर/एलसी.जेपीजी "] अमान्य है। क्या आपने सिर्फ dato = [NSData डेटा WithContentsOfURL: [NSURL URLWithString: @ "http: //192.168.1.2x0/pic/LC.jpg"]] का उपयोग करने का प्रयास किया था? – zonble

+0

मान लीजिए कि तस्वीर आपकी कक्षा में एक छवि है - एक असाइनमेंट है जिसे आप करना चाहते हैं? (तस्वीर = [तस्वीर initWithImage ...]) – KevinDTimm

उत्तर

82

यह होना चाहिए:

NSURL * imageURL = [NSURL URLWithString:@"http://192.168.1.2x0/pic/LC.jpg"]; 
NSData * imageData = [NSData dataWithContentsOfURL:imageURL]; 
UIImage * image = [UIImage imageWithData:imageData]; 

एक बार जब आप image चर है, तो आप यह एक UIImageView में के माध्यम से इसे image संपत्ति है, फेंक कर सकते हैं अर्थात्:

myImageView.image = image; 
//OR 
[myImageView setImage:image]; 

आप से बचने के लिए की जरूरत है आपकी मूल स्ट्रिंग में विशेष वर्ण, आप कर सकते हैं:

NSString * urlString = [@"http://192.168.1.2x0/pic/LC.jpg" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; 
NSURL * imageURL = [NSURL URLWithString:urlString]; 
.... 

आप बना रहे हैं तो आपके UIImageView प्रोग्राम के रूप में, आप कार्य करें:

UIImageView * myImageView = [[UIImageView alloc] initWithImage:image]; 
[someOtherView addSubview:myImageView]; 
[myImageView release]; 
+0

आपको बहुत धन्यवाद, मुझे नहीं पता था कि UIImageView कैसे काम करता है! यह इतना आसान था! आपका बहुत बहुत धन्यवाद! –

+0

चेतावनी, dataWithContentsOfURL: async नहीं है ... आप यहां मुख्य धागे को अवरुद्ध कर सकते हैं? – Goles

+0

मुझे एक यूआरएल से लोड की गई छवियों को स्थानीय रूप से लोड की गई छवि की तुलना में धुंधला दिखाई देता है [self.imageView setImage: [UIImage imageNamed: @ "AKL.JPG"]]; –

3

इस

NSURL *url = [NSURL URLWithString:@"http://192.168.1.2x0/pic/LC.jpg"]; 
NSData *data = [NSData dataWithContentsOfURL:url]; 
UIImageView *subview = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f,320.0f, 460.0f)]; 
[subview setImage:[UIImage imageWithData:data]]; 
[cell addSubview:subview]; 
[subview release]; 

ऑल द बेस्ट की कोशिश करो।

6

और क्योंकि यूआरएल से छवि लोड करने में उम्र लगती है, तो इसे असीमित रूप से लोड करना बेहतर होगा। निम्नलिखित गाइड मेरे लिए यह बेवकूफ-सरल बनाया:

http://www.switchonthecode.com/tutorials/loading-images-asynchronously-on-iphone-using-nsinvocationoperation

+0

रिकॉर्ड के लिए, वह अभी भी 'उम्र लेगा', यूआई बस लॉक नहीं होगा। –

3

यह वास्तविक कोड है।

UIImageView *myview=[[UIImageView alloc]init]; 

    myview.frame = CGRectMake(0, 0, 320, 480); 

    NSURL *imgURL=[[NSURL alloc]initWithString:@"http://soccerlens.com/files/2011/03/chelsea-1112-home.png"]; 

    NSData *imgdata=[[NSData alloc]initWithContentsOfURL:imgURL]; 

    UIImage *image=[[UIImage alloc]initWithData:imgdata]; 

    myview.image=image; 

    [self.view addSubview:myview]; 
3

आपको पृष्ठभूमि में छवि लोड करनी चाहिए या दृश्य स्थिर हो जाएगा। FYI करें

UIImage *img = [[UIImage alloc] init]; 

dispatch_async(dispatch_get_global_queue(0,0), ^{ 

    NSData * data = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString:@"http://www.test.com/test.png"]; 
    img = [UIImage imageWithData: data]; 

    dispatch_async(dispatch_get_main_queue(), ^{ 
     //PUT THE img INTO THE UIImageView (imgView for example) 
     imgView.image = img; 
    }); 
}); 
संबंधित मुद्दे