Próbuję narysować kilka miniatur o stałym rozmiarze (100x100) za pomocą UIImageView. Mam ustawić rozmiar ramki obrazu moim zdaniem być 100x100 i ustaw contentModesię UIViewContentModeScaleAspectFill.
Rozumiem, że powinno to spowodować, że obraz zostanie narysowany w ustawionym przeze mnie rozmiarze, a obraz wypełni obszar obrazu i przycina wszystkie części obrazu, które wykraczają poza rozmiar, który ustawiłem dla widoku obrazu. Jednak obraz jest nadal większy lub mniejszy niż rozmiar 100x100, który dla niego ustawiłem.
Jeżeli ustawić contentModesię UIviewContentModeScaleToFill, a następnie obraz jest rysowany dokładnie 100x100, ale jest zniekształcony, aby pasowały do tych wymiarów. Jakieś pomysły, dlaczego wypełnienie aspektu nie jest przycinane 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 tego, co widzę. Zielone kwadraty UIViewzawierają elementy, z UIImageViewktórymi pracuję. Ustawiłem ich kolor tła na zielony, a ramkę widoku na 100x100. W teście, UIImageViewsmają wymiary 50x50. Jak widać, w przypadku korzystania z ...AspectFillobrazu obrazy nie mają rozmiaru 50x50, a w niektórych przypadkach są przesunięte w stosunku do tego, co chciałbym. Podczas używania ...ScaleToFillmają prawidłowe rozmiary, ale obraz jest zniekształcony.



