Would like everything on the screen (UI) to be able to rotate from landscape left to right or vica versa.
How do I go about doing this? Is this private?
I know that
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {}
lets you say which orientations the UI can be, but is there a way to force only one at a time?
Cheers
On an iPhone without a Home button, swipe down from the top-right corner of the screen instead. Here, tap on the rotation lock icon (which looks like a lock with a circular arrow) to turn it on or off.
If the activity locks the display ( android:screenOrientation="portrait" ), this method will return the same value irrespective of how the user rotates the device. In that case you'd use the accelerometer or the gravity sensor to figure out orientation properly.
You can change the screen orientation of an Android or iOS device to set your application in portrait or landscape mode during the execution of the test. Use the capability deviceOrientation to change the screen orientation.
In iOS [[UIDevice currentDevice] setDeviceOrientation:UIDeviceOrientationSomeOrientation]
method is absent. But we can rotate a view with status bar, for this:
- (void)showAlbum { // check current orientation if ([[UIApplication sharedApplication] statusBarOrientation] != UIInterfaceOrientationLandscapeLeft) { // no, the orientation is wrong, we must rotate the UI self.navigationController.view.userInteractionEnabled = NO; [UIView beginAnimations:@"newAlbum" context:NULL]; [UIView setAnimationDelegate:self]; // when rotation is done, we can add new views, because UI orientation is OK [UIView setAnimationDidStopSelector:@selector(addAlbum)]; // setup status bar [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft animated:NO]; // rotate main view, in this sample the view of navigation controller is the root view in main window [self.navigationController.view setTransform: CGAffineTransformMakeRotation(M_PI / 2)]; // set size of view [self.navigationController.view setFrame:CGRectMake(0, 0, 748, 1024)]; [UIView commitAnimations]; } else { [self addAlbum]; } }
I've had success with this:
if (self.interfaceOrientation != UIInterfaceOrientationPortrait) { // http://stackoverflow.com/questions/181780/is-there-a-documented-way-to-set-the-iphone-orientation // http://openradar.appspot.com/radar?id=697 // [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait]; // Using the following code to get around apple's static analysis... [[UIDevice currentDevice] performSelector:NSSelectorFromString(@"setOrientation:") withObject:(id)UIInterfaceOrientationPortrait]; }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With