5 votes

Problèmes de rotation de UIActivityViewController

J'ai un problème avec le UIActivityViewController. J'instancie une nouvelle instance chaque fois que l'utilisateur appuie sur le bouton "Partager", mais il ne tourne pas correctement. Manque-t-il quelque chose d'essentiel dans mon code ?

Lorsque j'effectue une rotation, seuls la barre d'état et le contrôleur UIActivityViewController pivotent (pas la vue en arrière-plan) et parfois la taille de l'ActivityView est incorrecte.

    UIActivityViewController *activityVC;
    // Init sharing items and View Controller
    NSString *message = [NSString stringWithFormat:@""];

    UIImage *imageToShare = [UIImage imageNamed:@"imageName"];
    NSArray *postItems = @[message, imageToShare];

    activityVC = [[UIActivityViewController alloc]
                   initWithActivityItems:postItems
                   applicationActivities:nil];

    [self presentViewController:activityVC animated:YES completion:^() {
        [activityVC setCompletionHandler:^(NSString *activityType, BOOL completed) {
            // Completed
        }];
    }];

0voto

Aluminum Points 1381

Si je comprends bien votre question, vous avez une vue qui n'est pas rotative, n'est-ce pas ? Dans ce cas, tout ce que vous avez à faire est de placer ce code dans le contrôleur de vue UIActivityViewController est dans :

- (BOOL)shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown;
}

En - (NSUInteger)supportedInterfaceOrientations J'ai placé UIInterfaceOrientationMaskPortrait et UIInterfaceOrientationMaskPortraitUpsideDown pour vous et cela rendra la vue capable de pivoter uniquement lorsque vous placez l'appareil à l'envers, mais vous pouvez ajouter UIInterfaceOrientationMaskLandscapeLeft et/ou UIInterfaceOrientationMaskLandscapeRight pour permettre à la vue de pivoter dans toutes les orientations.

J'espère que ma réponse vous aidera. Sinon, pouvez-vous m'expliquer votre situation plus en détail ? Je vous souhaite une bonne journée.

0voto

newDeveloper Points 128

Si quelqu'un a rencontré un problème similaire avec UIActivityViewController Essayez d'implémenter cette fonction dans votre délégué d'application et renvoyez les orientations prises en charge.

- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X