class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
var clousureL: ((image: UIImage) -> Void)!
// var imageView: UIImageView!
var btn: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
btn = UIButton(type: .Custom)
btn.frame = CGRect(x: 100, y: 100, width: 150, height: 150)
btn.setImage(UIImage(named: "image.png"), forState: .Normal)
//给button添加点击事件
btn.addTarget(self, action: #selector(didButton(_:)), forControlEvents: .TouchUpInside)
self.view.addSubview(btn)
//给button添加单击手势
let tap = UITapGestureRecognizer(target: self, action: #selector(tapClick(_:)))
btn.addGestureRecognizer(tap)
}
func didButton(sender: UIButton){
didClick()
clousureL = {
(image) -> Void in
self.btn.setImage(image, forState: .Normal)
}
}
func tapClick(sender:UITapGestureRecognizer){
print("didclick")
didClick()
clousureL = {
self.btn.setImage($0, forState: .Normal)
}
}
func didClick(){
print("didclick")
let actionSheet = UIAlertController(title: "上传头像", message: nil, preferredStyle: .ActionSheet)
let cancelBtn = UIAlertAction(title: "取消", style: .Cancel, handler: nil)
let takePhotos = UIAlertAction(title:"拍照",style: .Destructive,handler: {
(action: UIAlertAction) -> Void in
if UIImagePickerController.isSourceTypeAvailable(.Camera){
let picker = UIImagePickerController()
picker.delegate = self
picker.sourceType = .Camera
picker.allowsEditing = true
self.presentViewController(picker, animated: true, completion: nil)
}
else
{
print("模拟器中无法打开相机,请在真机中打开")
}
})
let selectPhotos = UIAlertAction(title:"相册",style: .Default,handler: {
(action: UIAlertAction) -> Void in
let picker = UIImagePickerController()
picker.sourceType = .PhotoLibrary
picker.delegate = self
picker.allowsEditing = true
self.presentViewController(picker, animated: true, completion: nil)
})
actionSheet.addAction(cancelBtn)
actionSheet.addAction(takePhotos)
actionSheet.addAction(selectPhotos)
self.presentViewController(actionSheet, animated: true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let image = info[UIImagePickerControllerOriginalImage] as? UIImage
clousureL(image: image!)
picker.dismissViewControllerAnimated(true, completion: nil)
}
}
点击获取手机相册图片
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 1.先获取到APP沙盒中的图片路径path2.然后将path作为参数,传入下面的方法里,进行图片保存到手机本地相册中。
- 最近代码君遇到一个问题,在其他手机调用系统相册获取图片路径都是可以的,但是华为手机,执行相同代码,会报空指针异常,...
- 1.第一步在 - (BOOL)webView:(UIWebView *)webView shouldStartLo...
- 做APP基本上都是需要从系统的相册当中获取一张或多张图片。那怎么做呢?下面我就带你来实现这个内容,第一次写。 我只...