移动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
        
    }
}

图片描述


Hydrogen
2.5k 声望73 粉丝

Write code for fun.