5

我遇到了 UIActivityViewController 的问题,每次用户按下“共享”按钮时我都会实例化一个新实例,但它不会正确旋转。我的代码是否缺少必要的东西?

当我只旋转状态栏并且 UIActivityViewController 会旋转(而不是背景中的视图)并且有时 activityView 的大小会是错误的。

    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
        }];
    }];
4

2 回答 2

0

如果我正确理解您的问题,您的观点不会旋转,对吗?在这种情况下,您需要做的就是将此代码放在 View ControllerUIActivityViewController中:

- (BOOL)shouldAutorotate
{
    return YES;
}

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

- (NSUInteger)supportedInterfaceOrientations我为您放置UIInterfaceOrientationMaskPortrait 的 位置UIInterfaceOrientationMaskPortraitUpsideDown中,这将使视图只有在您将设备倒置时才能旋转,但您可以添加 UIInterfaceOrientationMaskLandscapeLeft 和/或 UIInterfaceOrientationMaskLandscapeRight让视图在所有方向上旋转。

希望我的回答对您有所帮助,如果没有,您能更好地向我解释您的情况吗?祝你有美好的一天。

于 2014-01-23T17:03:55.723 回答
0

UIActivityViewController如果有人在尝试在您的应用程序委托中实现此功能并返回支持的方向时遇到类似问题。

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

于 2018-01-19T00:32:21.350 回答