이번 글에서 알아보고자 하는 것은 iOS 어플에서 공유 부분을 만들 때 사용하는 UIActivityController입니다.
보통 크게 공유하는 것으로는
- 1. 이미지
- 2. URL
- 3. 텍스트
- 4. 위의 혼합
등이 있습니다. 어떤 식을 사용하는 지 또 어떠한 기능을 제공하는지 간단히 알아보겠습니다.
1. 생성
생성에는 공유할 아이템(이미지, 링크, 텍스트 등) 과 커스텀 지원의 파라미터가 존재합니다.
이 두 파라미터는 nil을 사용하실 수 있습니다.
let items: Array<Any> = [공유할 아이템]
let activities: Array<UIActivity> = [커스텀 액티비티]
let activityVC: UIActivityViewController = UIActivityViewController(activityItems: items, applicationActivities: activities)
2. 제외 설정
기본 생성이 완료가 되셨다면 공유 항목에서 필요 없는 것을 제외시킬 수가 있습니다.
(보통은 공유 아이템에 따라서 자동으로 정해지는 항목도 있습니다. 예를 들어 공유 액티비티가 이미지를 지원하지 않는다면 자동으로 그 항목은 제외되어집니다.)
무의미한 항목을 제외시키고 싶을 때 사용합니다.
필수 과정은 아니기 때문에 생략해도 됩니다.

let excludedTypes: Array<UIActivity.ActivityType> = [
.addToReadingList,
.airDrop,
.assignToContact,
.copyToPasteboard,
.mail,
.message,
.openInIBooks,
.postToFacebook,
.postToFlickr,
.postToTencentWeibo,
.postToTwitter,
.postToVimeo,
.postToWeibo,
.print,
.saveToCameraRoll,
.markupAsPDF] // 해당 배열에 제외시키고 싶은 것을 지정한다.
activityVC.excludedActivityTypes = excludedTypes
3. 실행
이제 마무리 단계입니다.
ActivityView가 실행된 후 처리를 담당합니다.
activityVC.completionWithItemsHandler = { (activityType: UIActivity.ActivityType?, completed: Bool, returnedItems: [Any]?, activityError: Error?) in
guard completed else { return }
// 처리
}
이 단계도 필수는 아니기 때문에 생략 가능합니다.
각 단계의 설정이 완료되셨다면 ActivityView를 화면에 띄우기 위하여 present를 실행합니다.
(UIActivityViewController는 UIViewController를 계승합니다.)
self.present(activityVC, animated: true, completion: nil)
4. 마무리
이번 글에서는 공유 기능을 담당하는 UIActivityViewController에 대하여 알아보았습니다.
궁금하신 부분이나 지적사항이 있으신 분은 댓글에 부탁드립니다.
많은 도움이 되었으면 좋겠습니다.
감사합니다.
환경
Xcode 11.3.1
Swift 5
'Swift > 정보 공유' 카테고리의 다른 글
[Swift] iOS App의 LifeCycle에 대하여 알아보자! (0) | 2020.06.22 |
---|---|
[Swift] iOS ViewController의 LifeCycle에 대하여 알아보자! (0) | 2020.06.22 |
[Swift] DispatchTimer를 사용해보자! (0) | 2020.06.05 |
[Swift] MapView를 클릭했을 때 해당 위치의 주소를 알아내보자! (0) | 2020.05.25 |
[Swift] Set에 대하여 (0) | 2020.05.12 |