不多说,直接上代码
import "ViewController.h"
@interface ViewController ()<UIImagePickerControllerDelegate,UIActionSheetDelegate>
@property(nonatomic,strong)UIButton *btn;
@property(nonatomic,strong)UIActionSheet *actionSheet;
@end
@implementation ViewController
(void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
_btn = [UIButton buttonWithType:UIButtonTypeSystem];
_btn.frame = CGRectMake(80, 200, 200, 200);
_btn.backgroundColor = [UIColor yellowColor];
[_btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
[_btn setTitle:@"点我" forState:UIControlStateNormal];
[self.view addSubview:_btn];
}(void)btnClick:(UIButton *)sender
{
[self openActionSheetFunc];
}
//调用ActionSheet
(void)openActionSheetFunc
{
//判断设备是否有具有摄像头(相机)功能
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
_actionSheet = [[UIActionSheet alloc]initWithTitle:@"选择图像" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照",@"从相册选择", nil];
}
else
{
_actionSheet = [[UIActionSheet alloc]initWithTitle:@"选择图像" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"从相册选择", nil];
}
_actionSheet.tag = 100;
//显示提示栏
[_actionSheet showInView:self.view];
}(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (actionSheet.tag == 100)
{
NSUInteger sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
switch (buttonIndex)
{
case 0:
//来源:相机
sourceType = UIImagePickerControllerSourceTypeCamera;
break;
case 1:
//来源:相册
sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
break;
case 2:
return;
}
}
else
{
if (buttonIndex == 2)
{
return;
}
else
{
sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
}
}
//跳转到相机或者相册页面
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc]init];
imagePickerController.allowsEditing = YES;
imagePickerController.sourceType = sourceType;
imagePickerController.delegate = self;
[self presentViewController:imagePickerController animated:YES completion:nil];
}
}
//pickerController的代理
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[picker dismissViewControllerAnimated:YES completion:nil];
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
[_btn setBackgroundImage:image forState:UIControlStateNormal];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end