2011-07-29 47 views
4

我想在UIImageView下添加各種UIImages並允許它們使用UIScrollView滾動。我不確定如何在UIImageView下添加各種圖像並讓它們滾動。 以下是我的代碼,它在UIImageView上添加圖像並使其可滾動。在UIScrollView中添加10個不同的UIImages

- (void)viewDidLoad { 

    [super viewDidLoad]; 
    UIImage *image = [UIImage imageNamed:@"ae.jpg"]; 
    imageView = [[UIImageView alloc]initWithImage:image]; 
    imageView.frame = [[UIScreen mainScreen] bounds]; 
    imageView.contentMode = (UIViewContentModeScaleAspectFit); 
    imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); 
    imageView.backgroundColor = [UIColor clearColor]; 



    UIScrollView* scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
    scrollView.contentMode = (UIViewContentModeScaleAspectFit); 

    scrollView.contentSize = CGSizeMake(image.size.width,960); 
    scrollView.pagingEnabled = NO; 
    scrollView.showsVerticalScrollIndicator = NO; 
    scrollView.showsHorizontalScrollIndicator = NO; 
    scrollView.alwaysBounceVertical = NO; 
    scrollView.alwaysBounceHorizontal = NO; 
    scrollView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); 
    scrollView.maximumZoomScale = 2.5; 
    scrollView.minimumZoomScale = 1; 
    scrollView.clipsToBounds = YES; 
    [scrollView addSubview:imageView]; 
    [image release]; 
    [imageView release]; 
    [self.view addSubview:scrollView]; 
} 
+0

您可能想在同一個UIScrollView中使用多個UIImageViews。但目前還不清楚你想要做什麼。 – jtbandes

+0

我想將各種圖像添加到另一個下方,例如想要在「ae.png」下添加另一個圖像並允許它滾動。可以說目前它只有一個圖像,但是如果我想在UIIImageView中添加一個圖像數組,可以嗎? – lifemoveson

+0

只需使用多個UIImageView。 – jtbandes

回答

8

這個想法基本上很簡單。假設您想要在UIScrollView中放置3個圖像。 每張圖片都是300x300。在這種情況下,你必須與框架滾動視圖:

scrollView.contentSize = CGSizeMake(image.size.width,900); 

對於每一個形象,你必須有它的UIImageView適當框架:

imgView1 = [[UIImageView alloc] initWithFrame:CGRectMake(xOrigin, 0, 300, 300)]; 
imgView2 = [[UIImageView alloc] initWithFrame:CGRectMake(xOrigin, 300, 300, 300)]; 
imgView3 = [[UIImageView alloc] initWithFrame:CGRectMake(xOrigin, 600, 300, 300)]; 
imgView1.image = [UIImage imageNamed:@"ProperName.png"]; 
... 

(在CGRectMake注意yOrigin(2個值) ) 然後像你一樣:

[scrollView addSubview:imgView1]; 
[scrollView addSubview:imgView2]; 
[scrollView addSubview:imgView3]; 
[imgView1 release]; 
[imgView2 release]; 
[imgView3 release]; 

當然,這是一個簡單的代碼,你會優化它;)

+0

你建議什麼樣的優化?因爲有20個uiviews,每個包含1個UIImageview(帶有陰影和邊框)和2個UILabel(沒有文本效果),我的UIScrollView不能平滑地滾動。 – David

+0

那麼,我沒有碰到這種問題,但我會嘗試實現一些頁面重用算法(UITableView採用這種方法來重新使用單元格)。這種方式在內存中總是會有少量頁面(以及相應的資源)。顯然,滾動時你必須以動態方式填寫內容。你可以在這裏閱讀我的答案(http://stackoverflow.com/questions/8374907/uiscrollview-selection-like-uipickerview看看答案的第n.2部分)。在那裏你會得到一個關於如何節省內存的可能想法。祝你好運。 – makaron