swift 从手机选照片_相册选择照片或拍照(Swift)

这篇博客介绍了如何使用Swift实现从手机相册选择照片或通过相机拍照的功能。首先,通过`UIImagePickerController.isSourceTypeAvailable(.Camera)`判断相机是否可用以决定是否显示拍照选项。然后,展示一个`UIActionSheet`供用户选择。接着,实现`UIActionSheetDelegate`以响应用户的选择,设置`UIImagePickerController`并呈现。最后,作为`UIImagePickerControllerDelegate`处理用户选取图片或取消操作。
摘要由CSDN通过智能技术生成

今天又做了从相册选择照片或者拍照,好久不做了。有些淡忘,去网上找了,有些凌乱,所以决定自己稍稍整理下。

1.判断相机是否可用,如果可用就有拍照选项,反正则没有。

let actionSheet: UIActionSheet

// 判断相机是否可用

if UIImagePickerController.isSourceTypeAvailable(.Camera) {

actionSheet = UIActionSheet(title: "请选择头像来源", delegate: self,

cancelButtonTitle: "取消", destructiveButtonTitle: nil,

otherButtonTitles: "从相册选择", "拍照")

} else {

actionSheet = UIActionSheet(title: "请选择头像来源", delegate: self,

cancelButtonTitle: "取消", destructiveButtonTitle: nil,

otherButtonTitles: "从相册选择")

}

actionSheet.showInView(view)

2.实现UIActionSheetDelegate,判断所选择的项

// MARK: - UIActionSheetDelegate

extension AccountViewController: UIActionSheetDelegate {

func actionSheet(actionSheet: UIActionSheet, clickedButtonAtIndex buttonIndex: Int) {

print(buttonIndex)

var sourceType: UIImagePickerControllerSourceType = .PhotoLibrary

switch buttonIndex {

case 1: // 从相册选择

sourceType = .PhotoLibrary

case 2: // 拍照

sourceType = .Camera

default:

return

}

let pickerVC = UIImagePickerController()

pickerVC.view.backgroundColor = UIColor.whiteColor()

pickerVC.delegate = self

pickerVC.allowsEditing = true

pickerVC.sourceType = sourceType

presentViewController(pickerVC, animated: true, completion: nil)

}

}

3.分别对确定和取消事件做处理

// MARK: - UIImagePickerControllerDelegate、UINavigationControllerDelegate

extension AccountViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {

func imagePickerController(picker: UIImagePickerController,

didFinishPickingMediaWithInfo info: [String : AnyObject]) {

dismissViewControllerAnimated(true, completion: nil)

if let image = info[UIImagePickerControllerEditedImage] as? UIImage {

headerView.setHeadImage(image)

}

}

func imagePickerControllerDidCancel(picker: UIImagePickerController) {

dismissViewControllerAnimated(true, completion: nil)

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值