iOS 打開相冊或相機

iOS圖片 : 打開相機或打開相冊

首先, 在應用中打開相機或者是打開相冊都會有一個彈窗之類的,讓用戶選擇到底是打開相冊,還是打開相機

這裏我們以彈出對話框爲例

  1. 首先對 UIImageView 添加一個輕拍手勢, 在輕拍手勢的方法中創建一個 UIActionSheet 的對象
    //在本類中要遵從 UIActionSheetDelegate 協議 
    UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"獲取照片" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"相冊", @"拍照", nil];
    [sheet showInView:self.view];
    [sheet release];
  2. 給 UIActionSheet 對象添加響應事件

    - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    switch (buttonIndex) {
        case 0:
            //從相冊中讀取
            [self readImageFromAlbum];
            break;
        case 1:
            //拍照
            [self readImageFromCamera];
            break;  
        case 2:
            break; 
        default:
            break;
    }
    }
    
    //從相機中讀取相片
    -(void)readImageFromAlbum {
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];//創建對象
    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;//(選擇類型)表示僅僅從相冊中選取照片
    imagePicker.delegate = self;//指定代理,因此我們要實現UIImagePickerControllerDelegate,  UINavigationControllerDelegate協議
    imagePicker.allowsEditing = YES;//設置在相冊選完照片後,是否跳到編輯模式進行圖片剪裁。(允許用戶編輯)
    [self presentViewController:imagePicker animated:YES completion:nil];//顯示相冊
    [imagePicker release];
    }
    //拍照
    -(void)readImageFromCamera {
    //判斷選擇的模式是否爲相機模式,如果沒有彈窗警告
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
        UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
        imagePicker.allowsEditing = YES;//允許編輯
        imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
        imagePicker.delegate = self;
        [self presentViewController:imagePicker animated:YES completion:nil];
        [imagePicker release];
    } else {
        //彈出窗口響應點擊事件
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"警告" message:@"未檢測到攝像頭" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"確定", nil];//警告。。確認按鈕
        [alert show];
        [alert release];
    }
    }
    //在本類中需要遵從 UIImagePickerControllerDelegate 協議
    //圖片編輯完成之後觸發, 顯示圖片在button上
    -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo {
    //參數image 就是最終選擇的圖片
    HeaderView *header = (HeaderView*)self.tableView.tableHeaderView;
    [header.iconView setImage:image forState:(UIControlStateNormal)];
    [self dismissViewControllerAnimated:YES completion:nil];
    }

至此 , 就可以打開相機或相冊了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章