移动App开发时常常会遇到分享的需求,iOS内建的UIActivityViewController就是一个不错的方式
UIActivityViewController基本知识
UIActivityViewController的构造方法如下
public init(activityItems: [AnyObject], applicationActivities: [UIActivity]?)
activityItems: [AnyObject]
这个参数是一个AnyObject类型数组,其内容是你希望分享的任意内容,可以是NSString、UIImage或其他遵循UIActivityItemSource Protocol的类applicationActivities: [UIActivity]?
这个参数表示了此应用自身能处理的分享类型,这里可以声明应用是否可以处理自身的分享
Demo
这里我们通过一个Demo来演示一下UIActivityViewController的使用方法
首先我们创建一个UITextField和一个分享按钮
lazy var textField:UITextField = {
var textField = UITextField(frame: CGRect(x: 20, y: 35, width: 280, height: 30))
textField.borderStyle = .RoundedRect
textField.delegate = self
return textField
}()
lazy var shareButton:UIButton = {
var shareButton = UIButton(frame: CGRect(x: 20, y: 20, width: 280, height: 44))
shareButton.setTitle("Share", forState: .Normal)
shareButton.addTarget(self, action: Selector("share"), forControlEvents: .TouchUpInside)
return shareButton
}()
然后在视图中添加控件,并实现TextField的Delegate方法
最后我们来写分享的方法
func share(){
if ((textField.text?.isEmpty) != nil){
print("无分享信息")
return
}
let activityViewController = UIActivityViewController(activityItems: [textField.text! as NSString], applicationActivities: nil)
presentViewController(activityViewController, animated: true) { () -> Void in
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。