front camera auto zoomed when take the picture in

2019-07-29 12:27发布

问题:

I have an image view to show the result of the camera, but the problem is when I take the photo, the result is the image will zoomed.

Here is my code:

var userData2 = userData()

var base64String1: String!
var decodedData1: Data!
var decodedImage1: UIImage!
@IBOutlet weak var imageResult: UIImageView!

override func viewDidLoad() {
    super.viewDidLoad()
    base64String1 = userData2.fotoIDString!
    decodedData1 = Data(base64Encoded: base64String1, options: [])!
    decodedImage1 = UIImage(data: decodedData1)!
//    decodedImage1 = Toucan(image: decodedImage1).resize(CGSize(width: 100, height: 150)).maskWithEllipse().image
    imageResult.image = decodedImage1
    imageResult.transform = CGAffineTransform(rotationAngle: CGFloat.pi/2)
    imageResult.contentMode = .scaleAspectFill
}

回答1:

you need to change the contentMode of your imageView from .scaleAspectFill change it to .scaleAspectFit

try this code:

var userData2 = userData()

var base64String1: String!
var decodedData1: Data!
var decodedImage1: UIImage!
@IBOutlet weak var imageResult: UIImageView!

override func viewDidLoad() {
    super.viewDidLoad()
    base64String1 = userData2.fotoIDString!
    decodedData1 = Data(base64Encoded: base64String1, options: [])!
    decodedImage1 = UIImage(data: decodedData1)!
//    decodedImage1 = Toucan(image: decodedImage1).resize(CGSize(width: 100, height: 150)).maskWithEllipse().image
    imageResult.image = decodedImage1
    imageResult.transform = CGAffineTransform(rotationAngle: CGFloat.pi/2)
    imageResult.contentMode = .scaleAspectFit//here is the difference
    imageResult.clipsToBounds = true//also add this line


}


回答2:

imageResult.contentMode = .scaleAspectFill change it to .scaleAspectFit