import UIKit
//先遵守协议
class ServiceViewController: UIViewController,UIImagePickerControllerDelegate, UINavigationControllerDelegate {
fileprivate var photoBtn:UIButton!
fileprivate var alertController:UIAlertController!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.view.backgroundColor = RGBA(r: 242, g: 242, b: 242, a: 1)
self.title = "工具"
//创建一个可以调取相机的按钮
let width:CGFloat = (CKWIDTH-60)/2
self.photoBtn = UIButton()
self.view.addSubview(self.photoBtn)
self.photoBtn.snp.makeConstraints { (make) in
make.left.equalTo(self.view).offset(20)
make.top.equalTo(self.view).offset(84)
make.width.equalTo(width)
make.height.equalTo(width)
}
self.photoBtn.setTitle("图片获取", for: .normal)
self.photoBtn.setTitleColor(UIColor.white, for: .normal)
self.photoBtn.addTarget(self, action:#selector(photoClick(_:)), for: .touchUpInside)
self.photoBtn.backgroundColor = RGBA(r: 32, g: 169, b: 242, a: 1)
}
//MARK: - 这部分是和照片相关的东西
//photoBtn按钮点击事件,因为是调用的oc接口,所以添加了@objc
@objc func photoClick(_ btn:UIButton) {
//自带的弹出框
//如果相机可用
var sourceType: UIImagePickerControllerSourceType = .photoLibrary
if UIImagePickerController.isSourceTypeAvailable(.camera){
self.alertController = UIAlertController()
//
let alert1:UIAlertAction = UIAlertAction.init(title: "打开相册", style: .default, handler: { (action) in
sourceType = .photoLibrary
self.pickerView(type: sourceType)
})
let alert2:UIAlertAction = UIAlertAction.init(title: "打开相机", style:.default, handler: { (action) in
sourceType = .camera
self.pickerView(type: sourceType)
})
let alert3:UIAlertAction = UIAlertAction.init(title: "取消", style: .cancel, handler: { (action) in
print("取消")
})
self.alertController.addAction(alert1)
self.alertController.addAction(alert2)
self.alertController.addAction(alert3)
self.present(self.alertController, animated: true, completion: nil)
}
//如果相机不可用
else{
self.alertController = UIAlertController()
let alert2:UIAlertAction = UIAlertAction.init(title: "打开相册", style:.default, handler: { (action) in
sourceType = .photoLibrary
self.pickerView(type: sourceType)
})
let alert3:UIAlertAction = UIAlertAction.init(title: "取消", style: .cancel, handler: { (action) in
print("取消")
})
self.alertController.addAction(alert2)
self.alertController.addAction(alert3)
self.present(self.alertController, animated: true, completion: nil)
}
}
func pickerView(type:UIImagePickerControllerSourceType){
let pickerVC = UIImagePickerController()
pickerVC.view.backgroundColor = UIColor.white
pickerVC.delegate = self
pickerVC.allowsEditing = true
pickerVC.sourceType = type
present(pickerVC, animated: true, completion: nil)
}
//MARK: - UIImagePickerControllerDelegate, UINavigationControllerDelegate
//取消
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
dismiss(animated: true, completion: nil)
}
//选中
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
dismiss(animated: true, completion: nil)
if let image = info[UIImagePickerControllerEditedImage] as? UIImage {
self.photoBtn.setImage(image, for: .normal)
}
print("%@",info)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}