ICoder
ICoder

Reputation: 1347

How to set the device orientation in iphone?

I am doing a project which supports both landscape mode and portrait mode,but now i am struck there is no orentation in my project.I set the

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations.
    //return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
    return YES;
}

but no use,when i press the command +Right-arrow for rotation to right it rotates to left but view and controllers didnt change to that orentation.Then after some googling i get this code

if (self.interfaceOrientation == UIInterfaceOrientationPortrait) {
    // do stuff
}

But the problem is i didn't know how to write code in //do stuff.Please help me to do this. thanks in advance. EDIT: i put this code ,it is working but whenthe simulator is again turns to portrait it wont be in the default mode.my code is

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
    {
        if ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight))
        {
            NSLog(@"Csantos shouldAutorotateToInterfaceOrientation: left or right");
            //
            table.transform = CGAffineTransformIdentity;
            table.transform = CGAffineTransformMakeRotation(degreesToRadian(90));
            table.bounds = CGRectMake(0.0, 0.0, 320, 402);//[self.view setFrame:CGRectMake(0.0, 0.0, 768, 90)];
        }
        else
        {
            table.transform = CGAffineTransformIdentity;
            table.transform = CGAffineTransformMakeRotation(degreesToRadian(360));
            table.bounds = CGRectMake(0.0, 51, 320, 402);
        }
               return YES;
   }*/

Upvotes: 0

Views: 576

Answers (2)

Satyam
Satyam

Reputation: 15894

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration;
{
    if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation))
    {
        //Handle portrait
    }
    else if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation))
     {
         //Handle landscape
     }
}

This is better code.

Upvotes: 1

mandeep-dhiman
mandeep-dhiman

Reputation: 2535

You can do like this.

if (UIInterfaceOrientationPortrait == interfaceOrientation || UIInterfaceOrientationLandscapeLeft == interfaceOrientation || UIInterfaceOrientationLandscapeRight == interfaceOrientation ||
    UIInterfaceOrientationPortraitUpsideDown == interfaceOrientation) {
    return  YES;
}

Upvotes: 0

Related Questions