Search code examples
iosavcapturesessioniphone-6-plusavcapturedeviceuiscreen

iPhone 6+ (Wrong scale?)


I have an iOS app using the camera to take pictures. It uses a path(CGPath) drawn on the screen (for example a rectangle), and it takes a photo within that path. The app supports only portrait orientation.

For that to happen I use: AVCaptureSession, AVCaptureStillImageOutput, AVCaptureDevice, AVCaptureVideoPreviewLayer (I guess all familiar to developers making this kind of apps).

My code uses UIScreen.mainScreen().bounds and UIScreen.mainScreen().scale to adapt do various devices and do its job.

It all goes fine(on iPhone 5, iPhone 6), until I try the app on an iPhone 6+ (running iOS 9.3.1) and see that something is wrong. The picture taken is not layed out in the right place anymore.

I had someone try on an iPhone 6+, and by putting an appropriate message I was able to confirm that (UIScreen.mainScreen().scale) is what it shoud be: 3.0. I have put the proper size launch images(640 × 960, 640 × 1136, 750 × 1334, 1242 × 2208) in the project. So what could be the problem?


Solution

  • In case someone else has the same issue. Here is what made things go wrong for me:

    I was naming a file : [email protected].

    When UIScreen.mainScreen().scale == 3.0 (case of an iPhone 6+) it has to be named : [email protected].