Załóżmy, że masz zestaw UIImageView równej szerokości w stosunku do widoku. Jednym ze sposobów przerysowania obrazu w celu dopasowania byłoby użycie Core Graphics. To, co robisz, to obliczenie współczynnika skali, aby przerysować obraz, aby pasował prawidłowo. Można znaleźć kilka świetnych próbek tutaj:
https://github.com/natecook1000/Image-Resizing/blob/master/Image%20Resizing/ImageResizingMethods.swift
i dobry samouczek z punktów odniesienia, aby zrozumieć, co lepsze:
http://nshipster.com/image-resizing/
przykładowy kod i używane (które jest w zasadzie jednym z Metody github modyfikuj zgodnie z moimi potrzebami):
let image = UIImage(data: data!)
let oldWidth = image!.size.width
let scaleFactor = UIWindow().screen.bounds.width/oldWidth
let cgImage = image!.CGImage
let width = Double(CGImageGetWidth(cgImage)) * Double(scaleFactor)
let height = Double(CGImageGetHeight(cgImage)) * Double(scaleFactor)
let bitsPerComponent = CGImageGetBitsPerComponent(cgImage)
let bytesPerRow = CGImageGetBytesPerRow(cgImage)
let colorSpace = CGImageGetColorSpace(cgImage)
let bitmapInfo = CGImageGetBitmapInfo(cgImage)
let context = CGBitmapContextCreate(nil, Int(width), Int(height), bitsPerComponent, bytesPerRow, colorSpace, bitmapInfo.rawValue)
CGContextSetInterpolationQuality(context, .High)
CGContextDrawImage(context, CGRect(origin: CGPointZero, size: CGSize(width: CGFloat(width), height: CGFloat(height))), cgImage)
let scaledImage = CGBitmapContextCreateImage(context).flatMap { return UIImage(CGImage: $0) }
imageView.image = scaledImage
Podczas gdy odpowiedź może być bardziej e pracowałem, dało mi kilka wskazówek, aby rozwiązać mój problem, dzięki! –
@thibautnoah to naprawiłeś? Prosimy o pomoc – user1629977
@ user1629977 Myślę, że moja odpowiedź poniżej jest więcej niż wystarczająco –