2011-08-24 68 views
0

我的UIImageViews(是SQUARE)的畫廊聲明的UIScrollView的子視圖:旋轉方imageview的滾動型

int size = self.view.frame.size.width/number; 
int maxSize = [list count]; //amount of images to show in this view 
imageViewArray = [[NSMutableArray alloc] init]; 

for (int i=0,j=1,k=0; i<maxSize; i++, j++){ 
    UIImageView *imageView = [[UIImageView alloc] initWithImage:[list objectAtIndex:i]]; 
    if (i % number == 0) 
    { 
     j = 1; 
     k++; 
    } 
imageView.frame = CGRectMake((size*(j-1)), (size*(k-1)), size, size); 
imageView.contentMode = UIViewContentModeScaleAspectFit; 
[imageView setAutoresizingMask: UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth]; 
[imageScrollView addSubview:imageView]; 
imageScrollView.contentSize = CGSizeMake(size*number, size*(maxSize/number)); 
[imageScrollView setAutoresizesSubviews:YES]; 

在縱向模式下一切正常。然而,在風景中,我希望我的圖像在X軸和Y軸上變得更大。粘貼代碼時,我的圖像僅在寬度方向上變大,因此它們寬而短。我希望他們保持他們的比例,所以仍然是方形的。任何想法..?

順便說一句:我試圖setAutoresizingMask靈活的高度,頂部和底部,但它使我的UIImages更短(我不知道爲什麼)。

+0

問題是,你從哪裏得到sizeX?數量是多少? – Seega

+0

@Seega對不起,sizeX ==大小,我改變它時複製粘貼到堆棧溢出,沒有注意到一個離開。已在我的帖子中更正。數字是圖庫中的列數。 – Vive

回答

0

你寫的圖像應在橫向視圖大小增加,所以你在哪裏調整UIImageViews的框架? (如果他們變得越來越小,那麼你必須在失蹤一段代碼中的錯誤。)

而且@gamozzii是正確的,你想在imageviews的自動尺寸是:

imageView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 
+0

我只是不這樣做..希望它可以自動完成;)所以我必須使數組圖像和旋轉後調整每個幀的大小? – Vive

+0

如果是這樣,那麼我想我的scrollView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;太..? Atm我有它設置爲靈活的所有維度(頂部,底部,右側,左側,寬度,高度)(提醒:我有imageViews內scrollView) – Vive

+0

您的滾動視圖可以自動調整它的框架(高度和寬度) - 但當框架更改,我認爲你仍然需要手動佈局子視圖。 –

2

你不希望你的利潤率是靈活的,讓他們固定,你只想要內部的高度/寬度是靈活的。因此,嘗試只設置有以下兩種:

[imageView setAutoresizingMask: UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth]; 
+0

在這種情況下,當我旋轉到風景,所有圖像變得越來越小,直到他們完全消失... – Vive