[英]Can't get a UIImageView fill the parent UIView with autolayout
[英]UIImageView fill in UIView
我有一個UIImageView
作為UIView
的subview
(幀大小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.