2013-02-27 60 views
1

我有一個UIScrollView,我想從flickr加載圖像列表。然後,我希望這些照片能夠像原始股票iphone照片應用程序一樣顯示,以便在照片中滾動。ios。 ScrollView只顯示一個圖像的子視圖

這裏是我的代碼

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    for (int i = 0; i < self.urlArray.count; i++) { 
     CGRect frame; 
     frame.origin.x = self.scrollView.frame.size.width * i; 
     frame.origin.y = 0; 
     frame.size = self.scrollView.frame.size; 

     UIView *subview = [[UIView alloc] initWithFrame:frame]; 


     [self returnImageFromFlickr:[self.urlArray objectAtIndex:i]]; 

     UIImageView *imageView = self.largePhoto; 

     [subview addSubview:imageView]; 
     [self.scrollView addSubview:subview]; 

    } 

    self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * self.urlArray.count, self.scrollView.frame.size.height); 
} 

-(void)returnImageFromFlickr:(NSURL *)url { 



    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; 
    [self.largePhoto setImageWithURLRequest:request placeholderImage:[UIImage imageNamed:@"placeholder.png"] success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) { 



     [self.largePhoto setImageWithURL:url placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 

    } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) { 

    }]; 

} 

發生了什麼只有正在顯示的最後一張圖像。

我試過你的解決方案,因爲我理解它並得到了這個。這不是攝影照片。只是一個白色的屏幕。在returnImageFromFlicrk方法中加上警告

[imageView setImageWithURL:url placeholderImage:[UIImage imageNamed:@「placeholder.png」]];

說 捕獲「的ImageView」強烈該塊很可能會導致保留週期

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

    /*for (int i = 0; i < self.urlArray.count; i++) { 
     CGRect frame; 
     frame.origin.x = self.scrollView.frame.size.width * i; 
     frame.origin.y = 0; 
     frame.size = self.scrollView.frame.size; 

     UIView *subview = [[UIView alloc] initWithFrame:frame]; 


     [self returnImageFromFlickr:[self.urlArray objectAtIndex:i]]; 

     UIImageView *imageView = self.largePhoto; 

     [subview addSubview:imageView]; 
     //subview.backgroundColor = [colors objectAtIndex:i]; 
     [self.scrollView addSubview:subview]; 

    }*/ 

    for (int i = 0; i < self.urlArray.count; i++) { 
     CGRect frame; 
     frame.origin.x = self.scrollView.frame.size.width * i; 
     frame.origin.y = 0; 
     frame.size = self.scrollView.frame.size; 
     UIImageView *imageView = [[UIImageView alloc] init]; 
     [self returnImageFromFlickr:[self.urlArray objectAtIndex:i] imageview:imageView]; 

     [self.scrollView addSubview:imageView]; 

    } 

    self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * self.urlArray.count, self.scrollView.frame.size.height); 
} 

-(void)returnImageFromFlickr:(NSURL *)url imageview:(UIImageView *)imageView { 
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; 
    [imageView setImageWithURLRequest:request placeholderImage:[UIImage imageNamed:@"placeholder.png"] success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) { 
     [imageView setImageWithURL:url placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 

    } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) { 

    }]; 


} 

回答

0

所有我需要做的是將代碼從viewDidLoad中移動到viewDidApear

0

你是不是正確的參數設置爲滾動內容泛這就是爲什麼所有你想要的圖像不在scrollView中顯示。嘗試更新ScrollView的內容平移以適應所有圖像的寬度。像

self.scrollView.contentSize = CGSizeMake(Width,Height);

在這種情況下,高度

將單個圖像和寬度的HIGHT會(單幅圖像的寬度*圖像的總數)

+0

我想這個代碼就是這麼做的self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width *自我.urlArray.count,self.scrollView.frame.size.height); – user1898829 2013-02-27 12:22:59

+0

是的,你在做什麼,但你設置的寬度和高度。對於寬度,你應該試試,即子視圖的寬度* self.urlArray.count和高度,你應該嘗試subView的高度。 – 2013-02-27 12:37:16

0

您覆蓋self.largePhoto,你需要設置你的ImageView在returnImageFromFlickr

試試這個

UIImageView *imageView = [[UIImageView alloc] init]; 
[self returnImageFromFlickr:[self.urlArray objectAtIndex:i] imageview:imageView]; 

-(void)returnImageFromFlickr:(NSURL *)url imageview:(UIImageView *)imageView { 
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; 
    [imageView setImageWithURLRequest:request placeholderImage:[UIImage imageNamed:@"placeholder.png"] success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) { 
     [imageView setImage:image]; 

} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) { 

}]; 

}

+0

檢查我上面更改的代碼。我仍然無法工作。我有我正確應用您的解決方案。 – user1898829 2013-02-28 08:16:00

+0

進入[imageView setImageWithURLRequest]的成功塊的代碼是 [imageView setImage:image] – Diego 2013-02-28 08:27:35

相關問題