zoukankan      html  css  js  c++  java
  • iOS开发 调用系统相机和相册

     调用系统相机和相册 (iPad,iPhone)
    打开相机:(iPad,iPhone)
    //先设定sourceType为相机,然后判断相机是否可用(ipod)没相机,不可用将sourceType设定为相片库  
        UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;  
    //    if (![UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) {  
    //        sourceType = UIImagePickerControllerSourceTypePhotoLibrary;  
    //    }  
        //sourceType = UIImagePickerControllerSourceTypeCamera; //照相机  
        //sourceType = UIImagePickerControllerSourceTypePhotoLibrary; //图片库  
        //sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; //保存的相片  
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];//初始化  
        picker.delegate = self;  
        picker.allowsEditing = YES;//设置可编辑  
        picker.sourceType = sourceType;  
        [self presentModalViewController:picker animated:YES];//进入照相界面  
        [picker release];  

    打开相册:(区分pad和iphone)for iphone:
    UIImagePickerController *pickerImage = [[UIImagePickerController alloc] init];  
        if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {  
            pickerImage.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;  
            //pickerImage.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;  
            pickerImage.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:pickerImage.sourceType];  
              
        }  
        pickerImage.delegate = self;  
        pickerImage.allowsEditing = NO;  
        [self presentModalViewController:pickerImage animated:YES];  
        [pickerImage release];  

    打开相册for ipad:
    UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypePhotoLibrary;  
        //sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; //保存的相片  
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];  
        picker.delegate = self;  
        picker.allowsEditing = NO;//是否允许编辑  
        picker.sourceType = sourceType;  
        /* 
         如果从一个导航按钮处呈现,使用: 
         presentPopoverFromBarButtonItem:permittedArrowDirections:animated:; 
         如果要从一个视图出呈现,使用: 
         presentPopoverFromRect:inView:permittedArrowDirections:animated: 
          
         如果设备旋转以后,位置定位错误需要在父视图控制器的下面方法里面重新定位: 
         didRotateFromInterfaceOrientation:(在这个方法体里面重新设置rect) 
         然后再次调用: 
         - (void)presentPopoverFromRect:(CGRect)rect inView:(UIView *)view permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated              
         */  
        //UIPopoverController只能在ipad设备上面使用;作用是用于显示临时内容,特点是总是显示在当前视图最前端,当单击界面的其他地方时自动消失。  
        UIPopoverController *popover = [[UIPopoverController alloc]initWithContentViewController:picker];  
        self.imagePicker = popover;  
        //permittedArrowDirections 设置箭头方向  
        [self.imagePicker presentPopoverFromRect:CGRectMake(0, 0, 300, 300) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];  
        [picker release];  
        [popover release];  

    点击相册中的图片 货照相机照完后点击use
    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

    点击cancel 调用的方法
    - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker

    注意:需要添加@property (nonatomic, retain) UIPopoverController *imagePicker; 

  • 相关阅读:
    Core Animation 文档翻译—附录C(KVC扩展)
    Core Animation 文档翻译—附录B(可动画的属性)
    Core Animation 文档翻译—附录A(Layer样貌相关属性动画)
    Core Animation 文档翻译 (第八篇)—提高动画的性能
    Core Animation 文档翻译 (第七篇)—改变Layer的默认动画
    Core Animation 文档翻译 (第六篇)—高级动画技巧
    Core Animation 文档翻译 (第五篇)—构建Layer的层次结构
    用Markdown快速排版一片文章
    Core Animation 文档翻译 (第四篇)—让Layer的content动画起来
    Core Animation 文档翻译(第三篇)—设置Layer对象
  • 原文地址:https://www.cnblogs.com/liuqixu/p/4683048.html
Copyright © 2011-2022 走看看