0

나는 시스템 전체 Facebook 계정이 구성된 경우 이미지를 Facebook에 공유 할 수있는 UIActivityViewController이 있습니다.UIActivityViewController에서 Facebook으로 공유하기위한 활동 표시를 표시 하시겠습니까?

예상대로 작동하지만 Facebook 아이콘을 두드린 후 Facebook 공유 대화 상자가 표시되기까지 몇 초의 지연이 있습니다. 이미지는 이미 메모리에 저장되어 있기 때문에 Facebook과 접촉하여 응답을 기다리는 것이 틀림 없다고 생각되지만 지연이 무엇인지 알 수는 없습니다.

Facebook 아이콘을 두드린 때부터 대화 상자가 나타날 때까지 불확실한 UIActivityIndicatorView을 표시 할 수있는 방법이 없습니다. 누구든지 방법을 알고 있습니까?

답변

0

비슷한 문제가있었습니다. 내 웹 응용 프로그램에 대한 HTTP 호출을 실행하고 싶었습니다. 따라서 트윗 URL이 필요할 것입니다. (제 경우에는 웹 응용 프로그램에 대한 호출이 비동기 스레드이기 때문에 더 복잡했습니다.) 두 가지 방법이 있습니다 ... 스토리 보드에 활동 지표보기를 추가하고 여기에 설명 된대로 IBActions를 만들 수 있습니다. http://sourcefreeze.com/uiactivityindicatorview-example-using-swift-in-ios/

코드를 통해 UIActivityIndicatorView을 추가하는 것이 더 간단하다는 것을 알았습니다. 클래스의 일원으로서 : 직전

func startActtivityIndicator(){ 

    activityIndicator.center = self.view.center 
    activityIndicator.hidesWhenStopped = true 
    self.view.addSubview(activityIndicator) 
    activityIndicator.startAnimating() 

} 

func stopActtivityIndicator(){ 

    activityIndicator.stopAnimating() 
    activityIndicator.removeFromSuperview() 

} 

그런 다음 단추 처리기에서 첫 번째 작업으로 startActivityIndicator()를 호출 stopActtivityIndicator() : let activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.gray)

은 내가 startAnimating()stopAnimating() 새로운 방법 내에서 호출을 추가 당신은 페이스 북 공유를 보여줍니다.

DispatchQueue.main.async(execute: {() -> Void in 

    self.stopActtivityIndicator() 

}) 
+0

I : I는 표시를 종료하고 비동기 HTTP 요청에 대한 응답으로 SLComposeViewController를 사용하여 트윗 상자를 (보여주고 싶었다 때문에 내 경우에는, 나는 정지 방법에 메인 쓰레드로 다시 이런 식으로 전화를했다 버튼 핸들러를 사용하지 않습니다.이 버튼은 Apple의 SDK에 의해 처리됩니다. Facebook 버튼이 UIActivityViewController에서 탭될 때 어떤 이벤트도 수신하지 않습니다. 문제가 있습니다 . –

+0

아, 사실, Facebook 공유에서의 지연에 관한 것입니다. 화면이 나타나지만이 사례를 직접 처리하지는 않지만 http://stackoverflow.com/questions/13519904/how-to-make-the-presentviewcontroller-with-slcomposeviewcontroller-faster의 답변 중 일부가 도움이 될 수 있습니다. 하나는'SLComposeViewController '를 미리로드하는 방법을 설명하고 다른 하나는 그것을로드하는 것을 제안한다. 앱이 느려지는 것을 방지하는 비동기 –

관련 문제