屏幕快照 2017-03-14 下午5.34.24.png
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let btn = UIButton(type: .custom)
btn.frame = CGRect(x: 50, y: 100, width: 80, height: 80)
btn.addTarget(self, action: #selector(btnClick(_ :)), for: .touchUpInside)
btn.setTitleColor(UIColor.blue, for: .normal)
btn.setTitle("按鈕", for: .normal)
self.view.addSubview(btn)
}
func btnClick(_ btn:UIButton)
{
//準(zhǔn)備分享內(nèi)容畔裕,文本圖片鏈接
let items = ["航歌", UIImage(named:"93-dot-red")!,
NSURL(fileURLWithPath:"http://hangge.com")] as [Any]
//新建自定義的分享對(duì)象數(shù)組
let acts = [FirstActivity(),SecondActivity()]
let activityVC:UIActivityViewController = UIActivityViewController(activityItems: items, applicationActivities: acts)
//要排除的分享按鈕,不顯示在分享框里
activityVC.excludedActivityTypes = [UIActivityType.mail,UIActivityType.copyToPasteboard,
UIActivityType.print,UIActivityType.assignToContact,UIActivityType.saveToCameraRoll]
self.present(activityVC, animated: true, completion: nil)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
import Foundation
import UIKit
class FirstActivity: UIActivity {
var text:String!
var url:NSURL!
var image:UIImage!
override var activityTitle: String?
{
return "第一"
}
override var activityImage: UIImage?
{
return UIImage(named: "1234")
}
//分享類型蒋院,在UIActivityViewController.completionHandler回調(diào)里可以用于判斷跑慕,一般取當(dāng)前類名
override var activityType: UIActivityType? {
return UIActivityType(rawValue: FirstActivity.self.description())
}
//按鈕類型(分享按鈕:在第一行祝辣,彩色,動(dòng)作按鈕:在第二行瓦灶,黑白)
override class var activityCategory: UIActivityCategory{
return UIActivityCategory.action
}
//是否顯示分享按鈕奶陈,這里一般根據(jù)用戶是否授權(quán),或分享內(nèi)容是否正確等來(lái)決定是否要隱藏分享按鈕
override func canPerform(withActivityItems activityItems: [Any]) -> Bool {
for item in activityItems {
if item is UIImage {
return true
}
if item is NSURL {
return true
}
if item is String {
return true
}
}
return false
}
//解析分享數(shù)據(jù)時(shí)調(diào)用,可以進(jìn)行一定的處理
override func prepare(withActivityItems activityItems: [Any]) {
print("prepareWithActivityItems")
for item in activityItems {
if item is UIImage {
image = item as! UIImage
}
if item is String {
text = item as! String
}
if item is NSURL {
url = item as! NSURL
}
}
}
//執(zhí)行分享行為
//這里根據(jù)自己的應(yīng)用做相應(yīng)的處理
//例如你可以分享到另外的app例如微信分享蔚舀,也可以保存數(shù)據(jù)到照片或其他地方饵沧,甚至分享到網(wǎng)絡(luò)
override func perform() {
print("performActivity")
//具體的執(zhí)行代碼這邊先省略
}
//分享時(shí)調(diào)用
override var activityViewController: UIViewController?
{
print("activityViewController")
return nil
}
//完成分享后調(diào)用
override func activityDidFinish(_ completed: Bool) {
print("activitydidfinish")
}
}
import Foundation
import UIKit
class SecondActivity: UIActivity {
var text:String!
var url:NSURL!
var image:UIImage!
override var activityTitle: String?
{
return "第二"
}
override var activityImage: UIImage?
{
return UIImage(named: "58(1)")
}
//分享類型,在UIActivityViewController.completionHandler回調(diào)里可以用于判斷赌躺,一般取當(dāng)前類名
override var activityType: UIActivityType? {
return UIActivityType(rawValue: SecondActivity.self.description())
}
//按鈕類型(分享按鈕:在第一行狼牺,彩色,動(dòng)作按鈕:在第二行礼患,黑白)
override class var activityCategory: UIActivityCategory{
return UIActivityCategory.share
}
//是否顯示分享按鈕是钥,這里一般根據(jù)用戶是否授權(quán),或分享內(nèi)容是否正確等來(lái)決定是否要隱藏分享按鈕
override func canPerform(withActivityItems activityItems: [Any]) -> Bool {
for item in activityItems {
if item is UIImage {
return true
}
if item is NSURL {
return true
}
if item is String {
return true
}
}
return false
}
//解析分享數(shù)據(jù)時(shí)調(diào)用,可以進(jìn)行一定的處理
override func prepare(withActivityItems activityItems: [Any]) {
print("prepareWithActivityItems")
for item in activityItems {
if item is UIImage {
image = item as! UIImage
}
if item is String {
text = item as! String
}
if item is NSURL {
url = item as! NSURL
}
}
}
//執(zhí)行分享行為
//這里根據(jù)自己的應(yīng)用做相應(yīng)的處理
//例如你可以分享到另外的app例如微信分享缅叠,也可以保存數(shù)據(jù)到照片或其他地方悄泥,甚至分享到網(wǎng)絡(luò)
override func perform() {
print("performActivity")
//具體的執(zhí)行代碼這邊先省略
}
//分享時(shí)調(diào)用
override var activityViewController: UIViewController?
{
print("activityViewController")
return nil
}
//完成分享后調(diào)用
override func activityDidFinish(_ completed: Bool) {
print("activitydidfinish")
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者