我試圖用UIImageView
以固定大小(100x100)繪製一些縮略圖圖像。我已將圖像視圖的框架大小設置爲100x100,並將contentMode
設置爲UIViewContentModeScaleAspectFill
。UIViewContentModeScaleAspectFill not clipping
我的理解是,這應該會導致圖像以我設置的大小繪製,並且圖像將填充圖像的區域,並剪裁圖像中超出爲圖像設置的大小的任何部分視圖。但是,圖像仍然比我爲它設置的100x100大小更大或更小。
如果我將contentMode
設置爲UIviewContentModeScaleToFill
,則圖像精確地繪製爲100x100,但它會扭曲以適合這些尺寸。任何想法爲什麼方面填充不按預期裁剪?
這裏是我的代碼:
_photoView = [[UIImageView alloc] initWithImage:photoImage];
_photoView.contentMode = UIViewContentModeScaleAspectFill;
[self addSubview:_photoView];
CGRect photoFrame = _photoView.frame;
photoFrame.size = CGSizeMake(100, 100);
_photoView.frame = photoFrame;
爲了更好地說明,這裏是我所看到的屏幕截圖。綠色方塊是UIView
,其中包含我正在處理的UIImageView
。我已將背景顏色設置爲綠色,並將視圖的框架設置爲100x100。作爲測試,UIImageViews
大小爲50x50。正如你所看到的,當使用...AspectFill
時,圖像的大小不是50x50,在某些情況下會偏離我想要的位置。使用...ScaleToFill
時,它們的尺寸正確,但圖像失真。
這就是它 - 感謝。 (我添加了上面的屏幕截圖,以便更好地顯示我所看到的內容,更多的例子是否有其他人遇到此問題。) –
在InterfaceBuilder中,將其重命名爲「Clips subviews」(注意:在這種情況下, t clib「子視圖」,名稱是錯誤的:它剪輯SELF和子視圖) – Adam
在NIB文件中選中「剪輯子視圖」選項也會執行相同的操作。乾杯。 – codeburn