Próbuję narysować kilka miniatur w stałym rozmiarze (100x100) przy użyciu UIImageView
. Ustawiłem rozmiar ramki mojego widoku obrazu na 100x100 i ustawiłem contentMode
na UIViewContentModeScaleAspectFill
.UIViewContentModeScaleAspectFill nie obcinanie
Rozumiem, że powinno to spowodować, że obraz zostanie narysowany w ustawionym rozmiarze, a obraz wypełni obszar obrazu i przyciąć dowolne fragmenty obrazu, których rozmiar jest inny niż ustawiony dla obrazu. widok. Obraz jest jednak nadal większy lub mniejszy niż rozmiar 100x100, który dla niego ustawiłem.
Jeśli ustawię contentMode
na UIviewContentModeScaleToFill
, obraz zostanie narysowany dokładnie na 100x100, ale jest zniekształcony, aby dopasować się do tych wymiarów. Jakieś pomysły, dlaczego wypełnienie aspektu nie jest obcinaniem zgodnie z oczekiwaniami?
Oto mój kod:
_photoView = [[UIImageView alloc] initWithImage:photoImage];
_photoView.contentMode = UIViewContentModeScaleAspectFill;
[self addSubview:_photoView];
CGRect photoFrame = _photoView.frame;
photoFrame.size = CGSizeMake(100, 100);
_photoView.frame = photoFrame;
Aby lepiej zilustrować, oto zrzut ekranu, co widzę. Zielone kwadraty to UIView
zawierające UIImageView
, z którymi pracuję. Ustawiłem kolor tła na zielony, a ramkę widoku na 100x100. Jako test, UIImageViews
mają rozmiar 50x50. Jak widać, przy korzystaniu z ...AspectFill
obrazy nie mają rozmiaru 50 x 50, aw niektórych przypadkach są przesunięte względem miejsca, w którym chciałbym je mieć. Podczas korzystania z ...ScaleToFill
mają one prawidłowy rozmiar, ale obraz jest zniekształcony.
Że to - dzięki. (Dodałem zrzut ekranu powyżej, aby lepiej pokazać to, co widziałem, bardziej jako przykład, jeśli ktoś inny natknie się na ten problem.) –
W InterfaceBuilder, zmieniono nazwę (niepomyślnie) na "Klipy subviews" (Uwaga: w tym przypadku nie robi " t clib "subviews", nazwa jest błędna: klipy SELF AND subviews) – Adam
Zaznaczenie opcji "Subviews klipów" w pliku NIB robi to samo. Twoje zdrowie. – codeburn