UIActivity

Panther·2021년 7월 28일
0

https://developer.apple.com/documentation/uikit/uiactivity

"An abstract class that you subclass to implement app-specific services."

app-specific 서비스를 구현하기 위한 서브클래싱하기 위한 추상 클래스입니다.

Declaration

class UIActivity : NSObject

Overview

사용자에게 커스텀 서비스를 제공하길 원할 때에만 UIActivity를 서브클래스해야 합니다. 서비스는 전달된 데이터를 가져와서 해당 데이터에 어떤 것을 하거나 결과를 반환합니다. 예를 들어 소셜 미디어 서비스는 텍스트, 이미지, 기타 제공되는 컨텐트 무엇이든 취급하게 되고, 사용자의 계정에 포스트합니다. 활동 객체는 사용자에게 서비스를 제시하는 데 책임이 있는 UIActivityViewController 객체와 함께 사용됩니다.

시스템은 이미 많은 표준 서비스에 대한 지원을 제공하고, UIActivityViewController 객체를 통해 사용할 수 있도록 합니다. 예를 들어 표준 활동 뷰 컨트롤러는 데이터 이메일링, 사용자의 소셜 미디어 계정에 아이템 포스팅, 몇 가지 기타 옵션을 지원합니다. 내장된 모든 타입에 대해 커스텀 서비스를 제공할 필요는 없습니다.

Subclassing Notes

이 클래스는 사용하기 전에 서브클래싱되어야 합니다. 활동 객체의 주요 수행작업은 활동 객체에 제공되는 데이터에 동작하는 것과 iOS가 사용자에게 표시할 수 있는 메타 정보를 제공하는 것입니다. 더 복잡한 서비스의 경우 활동 객체는 커스텀 UI 또한 표시할 수 있고, 이 UI를 사용자로부터 추가적인 정보를 모으기 위해 사용할 수도 있습니다.

Methods to Override

서브클래싱을 하는 경우 아래 메소드를 오버라이드해야 합니다. 그리고 이 메소드들을 서비스에 대한 정보를 제공하기 위해 사용해야 합니다.

  • activityType
  • activityTitle
  • activityImage
  • canPerform(withActivityItems:)
  • prepare(withActivityItems:)
  • activityCategory

canPerform(withActivityItems:) 메소드가 '서브클래스는 특정 데이터에 대한 작업을 수행할 수 있다'는 것을 표시하고 있다면, 활성화된 UIActivityViewController 객체는 사용자에게 서비스를 표시합니다. 사용자가 서비스를 선택하면, 활동 뷰 컨트롤러는 아래에 보이는 메소드 중 한 가지가 따라오는 prepare(withActivityItems:) 메소드를 호출합니다.

  • activityViewController—사용자에게 제시할 뷰 컨트롤러를 반환합니다. 만약 서비스가 사용자로부터 추가 입력을 요구한다면, 이 메소드를 오버라이드하고 커스텀 UI를 나타내는 데 책임이 있는 뷰 컨트롤러 객체를 반환하기 위해서 이 메소드를 사용하시기 바랍니다. (뷰 컨트롤러를 제시할 필요는 없습니다.) 뷰 컨트롤러 객체가 필요한 입력을 수집한 이후, 서비스와 관련이 있는 작업을 초기화하기 위한 책임이 있습니다.

  • perform()—어떠한 추가적인 UI 표시 없이 서비스를 수행합니다. 서비스가 사용자로부터 추가적인 입력을 필요로 하지 않는 경우 이 메소드를 오버라이드하고 서비스와 관련이 있는 작업을 수행해야 합니다.

See Also


Activities Interface

UIActivityViewController

앱으로부터 표준 서비스를 제공하는 데 사용하는 뷰 컨트롤러입니다.

https://developer.apple.com/documentation/uikit/uiactivityviewcontroller
https://velog.io/@panther222128/UIActivityViewController

UIActivityItemProvider

활동 뷰 컨트롤러에 전달되는 데이터에 대한 프록시입니다.

https://developer.apple.com/documentation/uikit/uiactivityitemprovider
https://velog.io/@panther222128/UIActivityItemProvider


0개의 댓글