iOS編程第四版第11章 Camera

本章講述如何顯示Camera拍攝的照片和圖片庫中的照片,如何保存這些照片。

涉及到的控件有UIImagePickerController和UIToolbar

model方面新建一個類用來存儲圖片。


實現步驟如下:

1. 添加一個UIImagePickerController 在DetailViewController中

2. 添加一個UIToolbar, 並在上面添加一個Camera button

3. 設置image picker的source type

三種類型:攝像頭,圖片庫,最近打開

4. Camera按鈕點擊處理

- (IBAction)takePicture:(id)sender {
    
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
        imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
    }else{
        imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    }
    
    imagePicker.delegate = self;
    
    //Place image picker on the screen
    [self presentViewController:imagePicker animated:YES completion:nil];
}

5. 顯示圖片

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{

    UIImage *image = info[UIImagePickerControllerOriginalImage];
    
    //store the image in the ImageStore for this key
    [[ImageStore sharedStore] setImage:image forKey:self.item.itemKey];
    
    self.imageView.image = image;
    
    [self dismissViewControllerAnimated:YES completion:nil];
}

6. 創建image model

 這裏使用了一個可變字典來存儲圖片


7. 創建itemKey。用來唯一表示一個item。

這裏用到了NSUUID這個類。生成一個UUID來做爲itemKey。


8. 取消鍵盤顯示。

1)對於textField可以使用代理UITextFieldDelegate

中的方法

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
<span style="white-space:pre">	</span>[textField resignFirstResponder];
<span style="white-space:pre">	</span>return YES;
}


2)點任意位置關閉鍵盤。

首先讓UIViewController中的View爲UIControl的一個實例。(屬性中設置)

然後,綁定它的點擊方法,

- (IBAction)backgroundTapped:(id)sender
{
<span style="white-space:pre">	</span>[self.view endEditing:YES];
}

9. 講到爲什麼用#pragma mark





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