2012-03-01 32 views
5

我有一個UIImageView作爲subviewUIView(幀大小300 x 300)。我的UIImage可能是肖像,風景或一些奇怪的尺寸。如何在UIView框架尺寸內填寫UIImage而不將圖片延伸至300 x 300UIImageView填寫UIView

這樣做的目的,我將添加另一個UIImageView作爲圖像邊框。 請幫忙。

謝謝。

回答

13
嘗試

[img setContentMode:UIViewContentModeScaleAspectFit];

UIViewContentModeScaleAspectFit:由 縮放以適合視圖的大小的內容保持縱橫比。視圖邊界的任何剩餘區域都是透明的。

[img setContentMode:UIViewContentModeScaleAspectFill];

UIViewContentModeScaleAspectFill:縮放內容來填充視圖的大小。部分內容可能會被剪輯以填充視圖的邊界。

如果你裁剪子視圖,那麼您需要根據您想要把它放在上海華做

[imgView clipToBounds:YES]; 
+0

我試圖使用上述2種模式,我的圖像不適合300 x 300 – RockBaby 2012-03-01 18:34:27

+0

ivEditImage = [[UIImageView alloc] initWithImage:imgChoosen]; ivEditImage.frame = vwEditingImage.frame; [ivEditImage setContentMode:UIViewContentModeScaleAspectFill]; – RockBaby 2012-03-01 18:38:53

+0

即使'UIViewContentModeScaleAspectFit'也沒有做到這一點? – 2012-03-01 20:14:41

0

使用UIImageView的contentMode屬性。


編輯:和設定的圖像尺寸,以300×

0
[image setContentMode:UIViewContentModeScaleToFill]; 
1

設置的UIImageView的contentMode屬性要麼這個值:

UIViewContentModeCenter, 
    UIViewContentModeTop, 
    UIViewContentModeBottom, 
    UIViewContentModeLeft, 
    UIViewContentModeRight, 
    UIViewContentModeTopLeft, 
    UIViewContentModeTopRight, 
    UIViewContentModeBottomLeft, 
    UIViewContentModeBottomRight, 

由於這個值:

UIViewContentModeScaleToFill, 
    UIViewContentModeScaleAspectFit, 
    UIViewContentModeScaleAspectFill, 

確實會使圖像成爲300 x 300,這是您不想要的。

+3

有沒有辦法將它們合併?我想要的是:假設100x10的圖像和全屏UIImageView。我希望它擴展到水平尺寸等於UIImageView寬度(對於iPhone來說爲320),並且生成的圖像(現在爲320x32)位於頂部。我試過這imgview.contentMode = UIViewContentModeScaleAspectFit | UIViewContentModeTop;但它不起作用。它只是UIViewContentModeTop部分(頂部是100x10)。 – Gik 2012-11-09 13:47:55

+0

@Gik - 你有沒有辦法做到這一點。我現在正在遇到一模一樣的問題。 – 2015-07-22 09:55:03

+0

我使用了一招。我「創建」了另一幅圖像(來自原始圖像),拉伸以填充較小的尺寸,然後用我「失蹤」的像素填充。所以最後我從原始的300x300圖像。如果你想我可以發佈代碼。 – Gik 2015-08-31 10:48:11

2

啊我只是重新讀你在問什麼,我知道你現在的問題是什麼。

您的UIImageView的框架會發生變化,並且您的圖像會發生變化。你不希望你的形象改變,但你想你的ImageView調整來填補它被包含在視圖中。

UPDATE

我想通了。

[self.imageView setContentMode:UIViewContentModeCenter]; 

無論什麼方向,大小都保持不變。

您還可以將其設置爲對齊頂部,底部,左側,右側,左上角,右上角,左下角,右下角,所有這些僅幫助對齊圖像並且不重繪或重新調整大小圖片。

這有幫助嗎?

+0

如果我重繪,它會拉伸我的形象。有沒有選擇不舒展? – RockBaby 2012-03-01 19:00:45