FbGraph API в ландшафтном режиме - PullRequest
1 голос
/ 06 декабря 2011

Я использую FbGraph API для интеграции с Facebook.Все работает нормально, но проблема в том, что FbGraph API не вращается в альбомной ориентации.

Я также использовал shouldAutorotateToInterfaceOrientation для ДА, и я попытался установить точку останова в didRotateFromInterfaceOrientation.

Это никогда не вызывается.Я действительно застрял в этом.Просьба помочь

Ответы [ 4 ]

1 голос
/ 17 ноября 2012

Я использую следующий метод, и он работает нормально.

Используйте следующий код в представлении, в котором вы собираетесь использовать fbgraph.

@ i-bhavik спасибо за основную идею, чувак.

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    {
    if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft) {

    NSLog(@"left");

    [self leftOrienation];

    }
    else if (interfaceOrientation == UIInterfaceOrientationLandscapeRight)
    {
    [self rightOrientation];
    NSLog(@"right");
    }
    else
    {

    }

    //  Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||      interfaceOrientation == UIInterfaceOrientationLandscapeRight);

    }

здесь я инициализировал FbGraph как fbGraph.

   -(void)leftOrienation
   {
   CGAffineTransform newTransform;
   newTransform = CGAffineTransformMakeRotation(M_PI * 270 / 180.0f);
   fbGraph.webView.transform = newTransform;
   [fbGraph.webView setFrame:CGRectMake(0, 0, 768, 1024)];

   }

   -(void)rightOrientation
   {
   CGAffineTransform newTransform;
   newTransform = CGAffineTransformMakeRotation(M_PI * 90 / 180.0f);
   fbGraph.webView.transform = newTransform;
   [fbGraph.webView setFrame:CGRectMake(0, 0, 768, 1024)];

    }
1 голос
/ 26 июня 2012

Я использую ниже и его работа отлично,

1) отправлять уведомления в - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation метод просмотра, из которого вы используете FBGraph

2)

- (BOOL)shouldAutorotateToInterfaceOrientation (UIInterfaceOrientation)interfaceOrientation
{

     [[NSNotificationCenter defaultCenter] postNotification:[NSNotification notificationWithName:@"CHANGE_ORIENTATION" object:orientation]];

}

3) В FBGraph

-(void)authenticateUserWithCallbackObject:(id)anObject andSelector:(SEL)selector andExtendedPermissions:(NSString *)extended_permissions {

    NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
    [nc addObserver:self selector:@selector(shouldAutorotateToInterfaceOrientation:)
               name:@"CHANGE_ORIENTATION"
             object:nil];
   -----------
 -------
}

-(BOOL)shouldAutorotateToInterfaceOrientation:(NSNotification *)notofication

{

    if([notofication.object isEqualToString:@"LEFT"])
    {
        CGAffineTransform newTransform;
        newTransform = CGAffineTransformMakeRotation(M_PI * 270 / 180.0f);
        webView.transform = newTransform;
        [webView setFrame:CGRectMake(12, 0, 320, 480)];
        NSLog(@"LEFT");
    }
    else if([notofication.object isEqualToString:@"RIGHT"])
    {
        CGAffineTransform newTransform;
        newTransform = CGAffineTransformMakeRotation(M_PI * 90 / 180.0f);
        webView.transform = newTransform;
            [webView setFrame:CGRectMake(0, 0, 305, 480)];
        NSLog(@"RIGHT");
    }
    else if([notofication.object isEqualToString:@"PORTRAIT"])
    {
        CGAffineTransform newTransform;
        newTransform = CGAffineTransformMakeRotation(M_PI * 360 / 180.0f);
        webView.transform = newTransform;
            [webView setFrame:CGRectMake(0, 12, 320, 480)];
        NSLog(@"PORTRAIT");
    }
    else if([notofication.object isEqualToString:@"DOWN"])
    {
        CGAffineTransform newTransform;
        newTransform = CGAffineTransformMakeRotation(M_PI * 180 / 180.0f);
        webView.transform = newTransform;
            [webView setFrame:CGRectMake(0, 0, 320, 465)];
        NSLog(@"DOWN");
    }
    return YES;
}
0 голосов
/ 26 июня 2012

Я решил эту проблему сам.Вместо этого, используя UIView, предоставляемый FBGraph API, я просто создал свой собственный UIViewController и реализовал этот API в этом контроллере представления.и в следующий момент проблема была решена ...

0 голосов
/ 06 декабря 2011

Это поможет детально разобраться в структуре вашего приложения, но некоторые шаги помогут:

  1. Установите все используемые вами контроллеры ViewController, которые должны прослушивать ротацию, с помощьюопределенный метод (обратите внимание, что он будет вращаться для ВСЕХ ориентаций, поэтому посмотрите документацию о том, как поддерживать книжную или альбомную ориентацию):

    -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
    { 
         return YES;
    }
    
  2. Просмотрите другие проблемы SO, которые упоминают об этом (/2020317/shouldautorotatetointerfaceorientation-ne-rabotaet)

  3. Просмотрите документацию iOS по этому вопросу и их устранение неполадок по этому вопросу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...