2012-09-15 13 views
11

Tworzę UIImageView za pomocą interfejsu Builder. Jego rozmiar klatki wynosi (320,67). Chcę wyświetlić obraz na obrazieView. Dostaję obraz z internetu. Problem polega na tym, że obraz się z sieci jest rozciągnięta do wyświetlania na ImageView ... Oto mój kodObraz nie pasuje do ramki UIImageView

NSData *imageData=[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.isco.com/webproductimages/appBnr/bnr1.jpg"]]; 
imageView.image = [UIImage imageWithData:imageData]; 

Czy ktoś tel mi, że jak wyświetlić obraz pasuje do wyświetlania na ImageView ????

Odpowiedz

29

Albo użyć

imageView.contentMode = UIViewContentModeScaleAspectFill; 

lub

imageView.contentMode = UIViewContentModeScaleAspectFit; 

Pierwszy wypełni kadr, ewentualnie odcięcie części obrazu. Drugi pokaże cały obraz, ewentualnie pozostawiając obszary ramy otwarte.

+2

Swift3 jest teraz obrazemView.contentMode = .scaleAspectFit lub .scaleAspectFill – HFR1994

0

Spróbuj tego kodu.

imView.contentMode = UIViewContentModeScaleAspectFit; 
4

Swift:

imageView.contentMode = UIViewContentMode.ScaleAspectFit 

Dla celu C:

imageView.contentMode = UIViewContentModeScaleAspectFit 

opcja ScaleAspectFit jest do skalowania zawartości do rozmiaru widoku od zachowując proporcje. Wszystkie pozostałe obszary widoczności są przezroczyste.

Screenshot

Patrz Apple docs szczegóły.

1

Zmieniłem rozmiar obrazu po skalowaniu obrazu zgodnie z jego proporcjami.

let widthRatio = ImageView.bounds.size.width/(captureImageView.image?.size.width)! 
let heightRatio = ImageView.bounds.size.height/(captureImageView.image?.size.height)! 
let scale = min(widthRatio, heightRatio) 
let imageWidth = scale * (ImageView.image?.size.width)! 
let imageHeight = scale * (ImageView.image?.size.height)! 
ImageView.frame = CGRect(x: 0, y: 0, width: imageWidth, height: imageHeight) 
Powiązane problemy