如何管理UIActivityViewController完成?

时间:2018-05-16 08:38:34

标签: ios swift xcode animation uiactivityviewcontroller

分享图片,我将其从屏幕上滑下来。

现在发生的事情是:

  • 我刷图片
  • 它呈现了UIActivityViewController
  • 我选择了一项活动
  • 活动以模态显示

如果我取消活动:

  • 图像在屏幕上(视图确实加载)
  • 图片移回

我需要什么:

  • 我取消活动
  • 图片不在屏幕上
  • 图片移回

我该怎么做?

这是我的代码:

        let activityViewController = UIActivityViewController(activityItems: [imageToShare], applicationActivities: nil)
    self.present(activityViewController, animated: true, completion: {
        print("presented")
        //self.grids.center = self.offScreenPosition
        print("position share is \(self.grids.center)")
    })

    switch deviceOrientation {
    case "portrait":
        activityViewController.completionWithItemsHandler = {(UIActivityType: UIActivityType?, completed: Bool, returnedItems: [Any]?, error: Error?) in
            if !completed {
                print("cancelled")
                self.moveViewVertically(.backIn, range: self.verticalRange)
            }
            if completed {
                print("completed")
                self.moveViewVertically(.backIn, range: self.verticalRange)
            }
        }
    case "landscape":
        activityViewController.completionWithItemsHandler = {(UIActivityType: UIActivityType?, completed: Bool, returnedItems: [Any]?, error: Error?) in
            if !completed {
                print("cancelled")
                self.moveViewHorizontally(.backIn, range: self.horizontalRange)
            }
            if completed {
                self.moveViewHorizontally(.backIn, range: self.horizontalRange)
            }
        }
    default:
        break
    }

印刷品可以看到发生了什么。 这是我的第一个应用程序。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

您希望视图在activityViewController解除之前移回吗?你可以尝试这个:自定义UIActivity的子类,然后

- (void)performActivity {
    // move your view back in
    [self activityDidFinish:YES];
}

答案 1 :(得分:0)

问题解决了。 在moveView方法中,我写了center.y -= 1来移动视图。即在期望范围内的迭代。

现在我做:

UIView.animate(withDuration: 0.5) {
            self.grids.transform = CGAffineTransform(translationX: 0, y: -self.view.frame.height)}

它按预期工作。