SLServiceTypeFacebook的Laggy表示

时间:2014-02-23 09:55:44

标签: ios iphone objective-c facebook uiimagepickercontroller

所以我正在向Facebook发帖,希望用户在这之前选择一张图片。 一旦图像被挑选,我就会显示Facebook。问题是,当我直接显示Facebook时,没有图像选择部分,它看起来很好。当我在选择图像后显示它时,Facebook共享看起来很动画,但是很迟钝。好像动作的帧速率很低。

这是我的代码:

    self.portraitPicker = [[UIImagePickerController alloc] init];
#if !(TARGET_IPHONE_SIMULATOR)
    self.portraitPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
#endif
    [self.portraitPicker setDelegate:self];
    self.portraitPicker.allowsEditing = YES;
    [self presentViewController:self.portraitPicker animated:YES completion:nil];

现在,当这个完成时,我会以模态显示Facebook发布:

[picker dismissViewControllerAnimated:YES completion:^{
            if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
            {
                self.facebookController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
                [self.facebookController setInitialText:@"Some text"];
                [facebookController addImage:pickedImage];
                [self presentViewController:self.facebookController animated:NO completion:nil];
            }
        }];

我可以在didFinishPickingMediaWithInfoimagePickerControllerDidCancel中执行此操作,无所谓,问题仍然存在。

绝望,我试过了:

  
      
  • 在主线程上显示延迟
  •   
  • 将其显示为异步
  •   
  • 在dismiss-block外面显示
  •   
  • 从AppDelegate的rootviewcontroller显示
  •   

这与Facebook无关,与SLServiceTypeTwitter以及MFMessageComposeViewController一样。

似乎无法消除仅显示图像选择器的滞后动画。有谁知道是什么导致了这个?

1 个答案:

答案 0 :(得分:0)

鉴于缺乏回应和类似问题,我认为原因是我自己的架构。 事实证明,我的一个viewcontrollers的ViewDidAppear在显示相机选择器后被调用(因为它变成了活动的viewcontroller,因此成为了非活动的viewcontroller,将控制权交还给原始的viewcontroller)。

阻止此viewDidAppear中发生的后台调用和动画解决了该问题。我仍然不知道为什么叫它延迟(即10秒,甚至未来100秒,当什么都没发生的时候)仍然出现了滞后的外观,但确实如此。