簡體   English   中英

UIImageView填寫UIView

[英]UIImageView fill in UIView

我有一個UIImageView作為UIViewsubview (幀大小300 x 300 )。 我的UIImage將是肖像,風景或一些奇怪的大小。 如何在不將圖像拉伸到300 x 300的情況下在UIView幀大小內填寫UIImage

為此,我將添加另一個UIImageView作為圖像邊框。 請幫忙。

謝謝。

嘗試

[img setContentMode:UIViewContentModeScaleAspectFit];

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

[img setContentMode:UIViewContentModeScaleAspectFill];

UIViewContentModeScaleAspectFill:縮放內容以填充視圖的大小。 可以剪裁內容的某些部分以填充視圖的邊界。

如果你剪輯子視圖,那么你需要這樣做

[imgView clipToBounds:YES];

啊,我只是重讀你所問的內容,我知道你現在的問題是什么。

你的UIImageView框架會發生變化,當你的圖像發生變化時。 您不希望更改圖像,但確實希望ImageView進行調整以填充其包含的視圖。

UPDATE

我想到了。

[self.imageView setContentMode:UIViewContentModeCenter];

無論朝哪個方向,尺寸都保持不變。

您還可以選擇將其設置為對齊頂部,底部,左側,右側,左上角,右上角,左下角,右下角,所有這些僅有助於對齊圖像,而不是重繪或重新調整圖像大小。

這有幫助嗎?

UIImageView的contentMode屬性設置為此值中的任何一個,具體取決於您要將其放在superview中的位置:

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

由於這個值:

UIViewContentModeScaleToFill,
    UIViewContentModeScaleAspectFit,
    UIViewContentModeScaleAspectFill,

確實會導致圖像為300 x 300,這是你不想要的。

使用UIImageView的contentMode屬性。


編輯:並將圖像大小設置為300x300

 [image setContentMode:UIViewContentModeScaleToFill];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM