2012-09-19 55 views
1

下面是一個例子: 顯示多按鈕多圖像,並顯示在滾動視圖如何顯示從按鈕上的URL加載的圖像?

(void)viewDidLoad 
    { 
[super viewDidLoad]; 
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
InitData *inData=[[InitData alloc]init]; 


scrollview.delegate=self; 
scrollview.scrollEnabled = YES; 
int scrollWidth = 120; 
scrollview.contentSize = CGSizeMake(scrollWidth,100); 


int xOffset = 0; 
//imageView.image = [UIImage imageNamed:[imagesName objectAtIndex:0]]; 

//Test 
NSURL *url=[NSURL URLWithString:@"....."]; 
NSData *jsonData=[NSData dataWithContentsOfURL:url]; 


if (jsonData !=nil) 
{ 

     NSError *error=nil; 
     id result=[NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error]; 

     if (error ==nil) 
     { 
       NSLog(@"%@",result); 
       // NSMutableArray *ArImg = nil; 
       NSArray* rus=[result objectForKey:@"RespOBJ"]; 

    for (int index = 0; index < rus.count ; index++) 
    { 
     NSMutableDictionary* final=[rus objectAtIndex:index]; 

     [inData setId:(int)[final objectForKey:@"Id"]]; 
     [inData setTum:[final objectForKey:@"TumbImage"]]; 
     [inData setImage:[final objectForKey:@"Image"]]; 

     UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom]; 
     [btn setImage:[UIImage imageNamed:[inData getImage]] forState:(UIControlStateNormal)]; 
     //[btn setImage:[UIImage imageWithData:jsonData] forState:(UIControlStateNormal)]; 

     [btn setTag:index]; 
     btn.bounds = CGRectMake(10, 10, 50, 50); 
     btn.frame = CGRectMake(5+xOffset, 0, 160, 70); 

     scrollview.contentSize = CGSizeMake(scrollWidth+xOffset,70); 

     NSLog(@"%@",[inData getId]); 
     NSLog(@"%@",[inData getImage]); 
     NSLog(@"%@",[inData getTum]); 

     [btn addTarget:self 
      action: @selector(btnclick:) 
      forControlEvents: UIControlEventTouchDown]; 

    [scrollview addSubview:btn]; 

    xOffset += 170; 

}

+0

而這個問題......?你的代碼的結果是什麼? –

+1

結果通過使用NSLog的...但在用戶界面scrollview是空的 – Azar

+0

你想設置你的按鈕像照片畫廊? – TheTiger

回答

0

與您的代碼的問題是,你不加載任何東西。我假設你想從互聯網下載圖像,然後在滾動視圖上顯示它。爲此,您必須使用NSURLRequestNSURLConnection。 看一看蘋果的文檔https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSURLRequest_Class/Reference/Reference.htmlhttps://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSURLConnection_Class/Reference/Reference.html
你也可以像如何加載數據異步Object-c/iOS :How to use ASynchronous to get a data from URL?

+1

,但我可以從網址獲取數據..但我可以在scrollview中顯示數據..你瞭解我嗎? – Azar

+0

好吧,那麼你如何將數據存儲在InitData對象中?我看到你設置圖像'[inData setImage:[final objectForKey:@「Image」]]; ',但它是一個鏈接?一些數據 ?不管它是什麼,你都不能使用'[UIImage imageNamed:]'方法來加載它!試試'[UIImage imageWithData:]' – nicolasthenoz