I'm trying to implement a navigation that pushes the user to a different screen when switching to landscape mode. I've tried for several hours now to implement an event listener to respond to an orientation change, which didn't work (I tried different examples from different websites).
Now, I took a full code example from here and here which also didn't work at all. (The first one just changes the text on the screen depending on the orientation, even that didn't work for me -.- )
I also tried to look into ScreenOrientation from Expo-Cli directly (expo-screen-orientation), but don't really get the documentation tbh.
I tried the orientation change on both an android emulator and my android phone (both Android 10).
Is there something I'm terribly missing here? How come that my app not respond to orientation changes?
Have you checked that the Device Orientation is not forced to Portrait in Xcode ? To check this go in Project -> General -> Device Orientation
Had the Device Orientation locked inside the app.json -.-
Related
I'm using expo screen orientation package to handle my apps screen orientations but it does not take into consideration if the user have turned auto rotate on/off in the device settings.
I tried the react-native-orientation-locker package as well but I can't get that to work at all on my app for some reason.
Is there any way of telling what the user preference is regarding the auto rotate? I can't find any examples of it anywhere. Surely others needed this info as well.
So I'm doing the Ray Wenderlich tutorials on iOS, and I'm doing the button tutorial. When I run the app, I get something that looks like this:
I have two questions:
I often see simulators show up in the form of an actual iPhone and was wondering if that was possible, or if that rectangle is the only way to view it?
The reason I'm asking is when I connected the button to an action (It says 'Pressed!'). So, is it supposed to show up in the box (bottom right) only, or should it should up on the simulator itself- mimicking what the user would see on-screen?
Regarding your first question: Probably a problem with screen size. See also here How can I restore the iPad frame around iOS Simulator 5.1?
The output seen in the screenshot is produced with NSLog and won't be seen on the device. You need to add an UILabel or such and set its text.
In the Simulator menu, try selecting Window then Scale and go to 50%. The retina models are far too big on my screen. Also, the old iOS 6 simulator with standard iPhone did look like a real phone, so examples from a while ago will look different.
If you want to support iOS 6.x, you can load it into Xcode. From Xcode main menu, select Xcode and then Preferences, and go to the Downloads tab.
Does anyone know if there is a way to force an app you're developing to run in a 3.5" screen size mode if you're on an iPhone 5, just for dev/debug purposes? Something such as what might look like a toggle in the Development section of Settings or something. In other words, run the app such that it LOOKS like it's running on a non-5 iPhone (black bars on top/bottom), that way I can test certain UI functions.
For clarification, I'm NOT saying "I don't want to support iPhone 5" - I most certainly do. Also, I'm aware that I can do the 'old' retina display in the simulator, but I do not want to use the iOS Simulator as the app includes libraries that do not support i386 architecture, uses push notifications, and heavily relies on GPS to function correctly. I'm just looking for a way to test both aspect ratios on the same device to save money/time.
Thank you!
It appears that by removing the app from device, deleting the Default-568h#2x.png launch image, cleaning the project, and re-running app, I can get the functionality I'm looking for, although not as nicely as a toggle switch.
Letter box in iPhone5
I am working on a project that will be targeted to a specific device, and the device has a resolution of 1280 x 800. I am aware of the restrictions on a Store app that mean limited functional support for this resolution (no snapped view, etc), but I was wondering if there was a way to configure the simulator to work in a non-standard resolution. Currently all the screens we have developed have been done blind (or at least against a resolution of 1366x768) as we don't have an actual device to build against. As a result we really don't know how the layouts are going to look on the device.
Click the Change Resolution button on right edge of the simulator. 9th button down, the icon looks like an LCD display. 1200x800 is one of the resolutions provided in the dropdown list. I'd post a screenshot if I knew how to make one, the simulator works a bit too well for that ;)
I have question regarding changing orientation on iPad.
I use MonoTouch, but if Obj-C programmers can help, it will be just as great.
First of all, I figured out if I provide different splash screen images for different orientations, app will show the right one. This can be done for any orientation, such as "Default-LandscapeLeft.png", or generic one "Default-Landscape.png".
All of my images are of correct dimensions and yet, when I start it in portrait mode, it shows it enlarged. All of other modes work perfectly well.
Second problem is I want my app to continue to be in that orientation after my first controller appear. At the moment, it shows portrait in any case. I started generating orientation notifications before first controller appeared (UINavigationController), but I think it responds only on orientation changes. After I moved device, it rotates and from that moment, everything works fine. BUT, I want to "inherit" orientation info from my splash screen.
Any idea will be appreciated.
Thanks guys and girls.
Cheers
Images for different orientations:
Default.png and Default-Landscape.png should be provided + setting the app settings to provide the required orientations.
Second problem:
After creating the first controller call
myController.WillRotate(UIApplication.SharedApplication.StatusBarOrientation, 0);