SplashScreen appears bigger than screen resolution on iPad

I have compiled a project that launches a SplashScreen object in the initialise() function of the main application class, it looks perfect on Windows and OS X but when testing the app on iPad the splash screen covers the entire screen and shows only a portion of the actual image, like it’s ~200% zoomed in.

Am I doing anything wrong or is there a bug in the library?

That‘s hard to tell without seeing the code. Do you react to the screen size at all?
Just guessing

I have omitted the code because I have used exacly as it’s suggested in the documentation.

class JuceApplication : public juce::JUCEApplication
        void initialise (const juce::String& commandLine) override
        splash = new SplashScreen("", ImageCache::getFromMemory(BinaryData::splash_png, BinaryData::splash_pngSize), true);
        splash->deleteAfterDelay(RelativeTime::seconds(1), true);

    [... other code ...]

    [... other code ...]

    SplashScreen* splash;

Looking at the implementation of SplashScreen, I think this is the way that it’s designed to work.

On iOS and Android, the splash screen will always fill the user area of the device’s screen. This differs from the behaviour on desktop platforms, where the splash screen will be displayed in a floating window, using the same size as the image itself.

Yes, after some further investigation I came to the same conclusion. Although there’s something wrong in the way the image is scaled to screen resolution. I have used a 800 x 480 image, and the app is configured to work in landscape mode only, so I’d expect that the splash image would be scaled on the x axis, leaving black borders on top and bottom, instead, the y axis is scaled to screen height and the x is scaled in proportion, appearing zoomed in.

If the aspect ratio of the image does not match that of the screen, then the image will be shown at a size that completely fills the screen, rather than leaving unfilled bars on the top or side of the image. I think the current behaviour is working as intended.