[swift] UIActivityの実装

目次

UIActivityの実装

UIActivityとは、SNSへの投稿やメール送信から、画像保存に連絡先追加などの機能を一覧から選択できる機能
*ただしiPadの場合はUIActivityという機能がないため、UIPopoverControllerを使用しないとクラッシュするので注意 = iPhoneとiPadを判定

サービスの種類

タイプ名 概要
UIActivityTypePostToFacebook Facebookへ投稿
UIActivityTypePostToTwitter Twitterへ投稿
UIActivityTypeMessage メッセージを送信
UIActivityTypeMail メールを送信
UIActivityTypePrint プリントダイアログを立ち上げる
UIActivityTypeCopyToPasteboard クリックボードに貼り付け
UIActivityTypeAssignToContact 連絡先を呼び出す
UIActivityTypeSaveToCameraRoll カメラロールに保存
UIActivityTypeAddToReadingList Safariのリーディングリストに追加
UIActivityTypePostToFlickr Flickrへ投稿
UIActivityTypePostToVimeo Vimeoへ投稿
UIActivityTypePostToWeibo 新浪微博へ投稿
UIActivityTypePostToTencentWeibo 騰訊微博へ投稿
UIActivityTypeAirDrop AirDropでの共有

サンプルコード

import Accounts
@IBAction func share(sender: UIButton) {

    // 共有する項目
    let shareText = "Apple - Apple Watch" //本文
    let shareWebsite = NSURL(string: "https://www.apple.com/jp/watch/")! //URL部分
    let shareImage = UIImage(named: "shareSample.png")! //添付したい画像

    let activityItems = [shareText, shareWebsite, shareImage]

    // 初期化処理
    let activityVC = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)

    // 使用しないアクティビティタイプ
    let excludedActivityTypes = [
      UIActivityTypePostToFacebook,
      UIActivityTypePostToTwitter,
      UIActivityTypeMessage,
      UIActivityTypeSaveToCameraRoll,
      UIActivityTypePrint
    ]

    activityVC.excludedActivityTypes = excludedActivityTypes
    activityVC.popoverPresentationController?.sourceView = self.view //これがないとiPadではクラッシュする

    // UIActivityViewControllerを表示
    self.presentViewController(activityVC, animated: true, completion: nil)
  }

 

Swift4では以下の通り

@IBAction func share(sender: UIButton) {

 // 共有する項目
 let shareText = "Apple - Apple Watch" //本文
 let shareWebsite = NSURL(string: "https://www.apple.com/jp/watch/")! //URL部分
 let shareImage = UIImage(named: "shareSample.png")! //添付したい画像

 let activityItems = [shareText, shareWebsite, shareImage]

 // 初期化処理
 let activityVC = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)

 // 使用しないアクティビティタイプ
 let excludedActivityTypes = [
 UIActivityTypePostToFacebook,
 UIActivityTypePostToTwitter,
 UIActivityTypeMessage,
 UIActivityTypeSaveToCameraRoll,
 UIActivityTypePrint
 ]

 activityVC.excludedActivityTypes = excludedActivityTypes
 activityVC.popoverPresentationController?.sourceView = self.view //これがないとiPadではクラッシュする

 // UIActivityViewControllerを表示
 self.present(activityVC, animated: true, completion: nil)
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です