Give iOS developers a little benefit, briefly describe the properties and usage of Uiimagepickercontroller

Source: Internet
Author: User

1.+ (BOOL) issourcetypeavailable: (Uiimagepickercontrollersourcetype) sourcetype; Checks whether the specified source is available on the device.

[Uiimagepickercontroller Issourcetypeavailable:uiimagepickercontrollersourcetypephotolibrary]; Check if photo feeds are available

2.allowsEditing Default No

Whether to allow editing

[Imagepicker Setallowsediting:yes]; Allow Editing

3. Videomaximumduration

Sets the maximum video duration for the uiimagepicker. Default 10 minutes

4. + Availablemediatypesforsourcetype://Specify the type of media available for the source

Get media types supported in camera mode

nsarray* availablemediatypes = [Uiimagepickercontroller availablemediatypesforsourcetype: Uiimagepickercontrollersourcetypecamera];

5. SourceType

Set the Uiimagepicker photo source type, which has 3 default types.

Uiimagepickercontrollersourcetypecamera camera

Uiimagepickercontrollersourcetypephotolibrary photo gallery (stored by sync, user cannot delete)

Uiimagepickercontrollersourcetypesavedphotosalbum saved photos (saved by photo or screenshot, user can delete)

6.UIImagePicker Use steps:

Checks whether the specified source is available. Issourcetypeavailable: Method.
Check whether the available media (video or only pictures) Availablemediatypesforsourcetype: method.
Sets the interface media properties Mediatypesproperty.
The display interface uses the PresentViewController:animated:completion: method. The ipad is in popover form. You need to make sure that the sourcetype is valid.
Related actions to remove the view.

If you want to create a fully customizable interface for Imagepicker to browse pictures, use the classes in assets Library Framework Reference. ("Media Capture and Access to Camera" in AV foundationprogramming Guide)


7. Set the source

+ Availablemediatypesforsourcetype://Specify the type of media available for the source
+ issourcetypeavailable://Specify whether the source is available on the device
SourceType

The source type needs to be indicated before running the related interface. Must be valid, or throw an exception. Picker has been shown to change this value, picker will change accordingly to adapt.

Default Uiimagepickercontrollersourcetypephotolibrary.


8. Setting the Picker property

Allowsediting//Is editable
Delegate
MediaTypes

Indicates the type of media that is displayed in picker. Apply Availablemediatypesforsourcetype before setting each type: Check it. An exception occurs if either empty or if the type in array is not available.

By default kuttypeimage, only pictures can be displayed.


9.video Selecting parameters

Videoquality///video capture when selecting the encoding quality. Valid only if MediaTypes contains Kuttypemovie.
Videomaximumduration//sec, video Maximum recording time, default 10 minutes. Valid only when MediaTypes contains Kuttypemovie.


10. Custom interface

Showscameracontrols
Indicates whether picker displays the default cameracontrols. The default is yes, set to No to hide the default controls to use the custom Overlayview. (so you can implement multiple selections instead of choosing one picker dismiss). Only Uiimagepickercontrollersourcetypecamera source is valid, otherwise nsinvalidargumentexception exception.

Cameraoverlayview
Custom view that is used to display above picker. Valid only when the source is Uiimagepickercontrollersourcetypecamera. Other times use the throw nsinvalidargumentexception exception.

Cameraviewtransform
Pre-animated. Affects only pre-images and is not valid for custom Overlayview and default picker. Used only when the source of picker is Uiimagepickercontrollersourcetypecamera, Otherwise nsinvalidargumentexception exception.


11. Select Media

–takepicture
Use the camera to select a picture. Custom overlay can be multi-selected. There is already a picture being selected that is invalid for the call and must wait for delegate to receive Imagepickercontroller:didfinishpickingmediawithinfo: Message before it can be picked again. Non-Uiimagepickercontrollersourcetypecamera sources can cause exceptions.

–startvideocapture
–stopvideocapture
End the video selection, and then the system calls delegate's Imagepickercontroller:didfinishpickingmediawithinfo: method.


12. Setting up the camera

Cameradevice//Lens Used (default rear)
+ iscameradeviceavailable://Camera device is available.
+ Availablecapturemodesforcameradevice://Selection mode available for the device
Cameracapturemode//Camera Capture mode
Cameraflashmode//Flash mode (default auto)
+ Isflashavailableforcameradevice://whether there is flash capability


13.UIImagePickerControllerDelegate

Use Uiimagewritetosavedphotosalbum to save the image, Uisavevideoatpathtosavedphotosalbum save the video. Use WriteImageToSavedPhotosAlbum:metadata:completionBlock after 4.0: Save metadata.

-(void) Imagepickercontroller: (uiimagepickercontroller*) Picker didfinishpickingmediawithinfo: (NSDictionary *) info

Include the selected image or a video URL as described in "Editinginformation Keys."
If you set an editable property, picker will pre-display the selected media, and the edited and original will be saved in info.

–imagepickercontrollerdidcancel:
–imagepickercontroller:didfinishpickingimage:editinginfo://deprecatedin IOS 3.0

NSString *const uiimagepickercontrollermediatype;//Media type
NSString *const uiimagepickercontrolleroriginalimage;//Original unedited image
NSString *const uiimagepickercontrollereditedimage;//edited image
NSString *const uiimagepickercontrollercroprect;//Source image editable (valid?) Regional
NSString *const uiimagepickercontrollermediaurl;//Video Path
NSString *const uiimagepickercontrollerreferenceurl;//The URL of the original selection
NSString *const uiimagepickercontrollermediametadata;//is valid only when using the camera and is an image type. The type of dictionary that contains the selection image information

Uiimagepickercontroller Small Example

Uiimagepickercontroller agents are required to abide by these two protocols. <uiimagepickercontrollerdelegate, Uinavigationcontrollerdelegate>

#pragma mark Select a photo

-(void) Selectphoto

{

1. First determine if the photo source is available

if ([Uiimagepickercontroller issourcetypeavailable:uiimagepickercontrollersourcetypephotolibrary]) {

0) Instantiating the controller

Uiimagepickercontroller *picker = [[Uiimagepickercontroller alloc]init];

1) Set Photo source

[Picker setsourcetype:uiimagepickercontrollersourcetypephotolibrary];

2) settings Allow modification

[Picker Setallowsediting:yes];

3) Set up the agent

[Picker setdelegate:self];

4) Display Controller

[Self Presentviewcontroller:picker animated:yes completion:nil];

} else {

NSLog (@ "photo source not available");

}

}

#pragma Mark-imagepicker Proxy method

-(void) Imagepickercontroller: (Uiimagepickercontroller *) Pickerdidfinishpickingmediawithinfo: (NSDictionary *) info

{

UIImage *image = info[@ "Uiimagepickercontrollereditedimage"];

[_imagebutton setimage:image Forstate:uicontrolstatenormal];

Turn off photo Selector

[Self dismissviewcontrolleranimated:yes completion:nil];

Need to save photos to the application sandbox, as it relates to data storage, and is not interface-Independent

You can save images using multiple threads

Dispatch_async (Dispatch_get_global_queue (dispatch_queue_priority_default, 0), ^{

Save Image

1. Take image Path

Nsarray *docs = Nssearchpathfordirectoriesindomains (NSDocumentDirectory, Nsuserdomainmask, YES);

NSString *imagepath = [docs[0]stringbyappendingpathcomponent:@ "Abc.png"];

2. Convert to NSData Save

NSData *imagedata = uiimagepngrepresentation (image);

[ImageData Writetofile:imagepath Atomically:yes];

});

}

Give iOS developers a little benefit, briefly describe the properties and usage of Uiimagepickercontroller

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.