您的位置:首页 > 产品设计 > UI/UE

UIImagePickerController.h

2013-03-06 10:24 495 查看
//
//  UIImagePickerController.h
//  UIKit
//
//  Copyright (c) 2008-2012, Apple Inc. All rights reserved.
//

#import<Foundation/Foundation.h>
#import<UIKit/UINavigationController.h>
#import<UIKit/UIKitDefines.h>

@classUIImage;
@protocolUIImagePickerControllerDelegate;

typedefNS_ENUM(NSInteger, UIImagePickerControllerSourceType) {
    UIImagePickerControllerSourceTypePhotoLibrary,
    UIImagePickerControllerSourceTypeCamera,
    UIImagePickerControllerSourceTypeSavedPhotosAlbum
};

typedefNS_ENUM(NSInteger, UIImagePickerControllerQualityType) {
    UIImagePickerControllerQualityTypeHigh = 0,      // highest quality
    UIImagePickerControllerQualityTypeMedium = 1,    // medium quality, suitable for transmission via Wi-Fi 
    UIImagePickerControllerQualityTypeLow = 2,        // lowest quality, suitable for tranmission via cellular network
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_4_0
    UIImagePickerControllerQualityType640x480 = 3,   // VGA quality
#endif
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_5_0
    UIImagePickerControllerQualityTypeIFrame1280x720 = 4,
    UIImagePickerControllerQualityTypeIFrame960x540 = 5
#endif
};

typedefNS_ENUM(NSInteger, UIImagePickerControllerCameraCaptureMode) {
    UIImagePickerControllerCameraCaptureModePhoto,
    UIImagePickerControllerCameraCaptureModeVideo
};

typedefNS_ENUM(NSInteger, UIImagePickerControllerCameraDevice) {
    UIImagePickerControllerCameraDeviceRear,
    UIImagePickerControllerCameraDeviceFront
};

typedefNS_ENUM(NSInteger, UIImagePickerControllerCameraFlashMode) {
    UIImagePickerControllerCameraFlashModeOff  = -1,
    UIImagePickerControllerCameraFlashModeAuto = 0,
    UIImagePickerControllerCameraFlashModeOn   = 1
};

// info dictionary keys
UIKIT_EXTERNNSString *const UIImagePickerControllerMediaType;     //
an NSString (UTI, i.e. kUTTypeImage)
UIKIT_EXTERNNSString *const UIImagePickerControllerOriginalImage; //
a UIImage
UIKIT_EXTERNNSString *const UIImagePickerControllerEditedImage;   //
a UIImage
UIKIT_EXTERNNSString *const UIImagePickerControllerCropRect;      //
an NSValue (CGRect)
UIKIT_EXTERNNSString *const UIImagePickerControllerMediaURL;      //
an NSURL
UIKIT_EXTERN NSString *const UIImagePickerControllerReferenceURL 
      NS_AVAILABLE_IOS(4_1); // an NSURL that references an asset in the AssetsLibrary framework
UIKIT_EXTERN NSString *const UIImagePickerControllerMediaMetadata      NS_AVAILABLE_IOS(4_1); 
// an NSDictionary containing metadata from a captured photo

NS_CLASS_AVAILABLE_IOS(2_0)@interface UIImagePickerController : UINavigationController <NSCoding>
{
 @private
   UIImagePickerControllerSourceType _sourceType;
   
id                                _image;
   
CGRect                            _cropRect;
   
NSArray                          *_mediaTypes;
   
NSMutableDictionary              *_properties;
   
int                               _previousStatusBarStyle;
    
   
struct {
       
unsigned int visible:1;
       
unsigned int isCleaningUp:1;
       
unsigned int savingOptions:3;
       
unsigned int didRevertStatusBar:1;
    } _imagePickerFlags;
}

+ (BOOL)isSourceTypeAvailable:(UIImagePickerControllerSourceType)sourceType;
                // returns YES if source is available (i.e. camera present)
+ (NSArray *)availableMediaTypesForSourceType:(UIImagePickerControllerSourceType)sourceType;//
returns array of available media types (i.e. kUTTypeImage)

+ (BOOL)isCameraDeviceAvailable:(UIImagePickerControllerCameraDevice)cameraDevice                  NS_AVAILABLE_IOS(4_0);
// returns YES if camera device is available 
+ (BOOL)isFlashAvailableForCameraDevice:(UIImagePickerControllerCameraDevice)cameraDevice          NS_AVAILABLE_IOS(4_0);
// returns YES if camera device supports flash and torch.
+ (NSArray *)availableCaptureModesForCameraDevice:(UIImagePickerControllerCameraDevice)cameraDeviceNS_AVAILABLE_IOS(4_0);
// returns array of NSNumbers (UIImagePickerControllerCameraCaptureMode)

@property(nonatomic,assign) 
  id <UINavigationControllerDelegate,UIImagePickerControllerDelegate> delegate;

@property(nonatomic)          UIImagePickerControllerSourceType     sourceType;           
                                           // default value is UIImagePickerControllerSourceTypePhotoLibrary.
@property(nonatomic,copy)     NSArray                   
          *mediaTypes;  
   // default value is an array containing kUTTypeImage.
@property(nonatomic)          BOOL                                  allowsEditingNS_AVAILABLE_IOS(3_1);
    // replacement for -allowsImageEditing; default value is NO.
@property(nonatomic)          BOOL                                  allowsImageEditingNS_DEPRECATED_IOS(2_0,
3_1);

// video properties apply only if mediaTypes includes kUTTypeMovie
@property(nonatomic)           NSTimeInterval                        videoMaximumDurationNS_AVAILABLE_IOS(3_1);
// default value is 10 minutes.
@property(nonatomic)           UIImagePickerControllerQualityType 
  videoQuality NS_AVAILABLE_IOS(3_1);        // default value is UIImagePickerControllerQualityTypeMedium. If the cameraDevice does not support the videoQuality, it will use the default
value.

// camera additions available only if sourceType is UIImagePickerControllerSourceTypeCamera.
@property(nonatomic)          BOOL                                  showsCameraControlsNS_AVAILABLE_IOS(3_1);
  // set to NO to hide all standard camera UI. default is YES
@property(nonatomic,retain)    UIView                                *cameraOverlayView NS_AVAILABLE_IOS(3_1);
  // set a view to overlay the preview view.
@property(nonatomic)           CGAffineTransform                     cameraViewTransformNS_AVAILABLE_IOS(3_1);
  // set the transform of the preview view.

- (void)takePictureNS_AVAILABLE_IOS(3_1);                                                   
// programatically initiates still image capture. ignored if image capture is in-flight.
// clients can initiate additional captures after receiving -imagePickerController:didFinishPickingMediaWithInfo: delegate callback

- (BOOL)startVideoCaptureNS_AVAILABLE_IOS(4_0);
- (void)stopVideoCapture NS_AVAILABLE_IOS(4_0);

@property(nonatomic) UIImagePickerControllerCameraCaptureMode cameraCaptureModeNS_AVAILABLE_IOS(4_0);
// default is UIImagePickerControllerCameraCaptureModePhoto
@property(nonatomic) UIImagePickerControllerCameraDevice      cameraDevice     NS_AVAILABLE_IOS(4_0);
// default is UIImagePickerControllerCameraDeviceRear
@property(nonatomic) UIImagePickerControllerCameraFlashMode   cameraFlashMode  NS_AVAILABLE_IOS(4_0);
// default is UIImagePickerControllerCameraFlashModeAuto. 
// cameraFlashMode controls the still-image flash when cameraCaptureMode is Photo. cameraFlashMode controls the video torch when cameraCaptureMode is Video.

@end

@protocol UIImagePickerControllerDelegate<NSObject>
@optional
// The picker does not dismiss itself; the client dismisses it in these callbacks.
// The delegate will receive one or the other, but not both, depending whether the user
// confirms or cancels.
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfoNS_DEPRECATED_IOS(2_0,
3_0);
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary
*)info;
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;

@end

// Adds a photo to the saved photos album.  The optional completionSelector should have the form:
//  - (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo;
UIKIT_EXTERNvoid UIImageWriteToSavedPhotosAlbum(UIImage *image,id
completionTarget, SEL completionSelector,
void *contextInfo);

// Is a specific video eligible to be saved to the saved photos album? 
UIKIT_EXTERNBOOL UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(NSString *videoPath)NS_AVAILABLE_IOS(3_1);

// Adds a video to the saved photos album. The optional completionSelector should have the form:
//  - (void)video:(NSString *)videoPath didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo;
UIKIT_EXTERNvoid UISaveVideoAtPathToSavedPhotosAlbum(NSString *videoPath,id completionTarget,
SEL completionSelector,
void *contextInfo)NS_AVAILABLE_IOS(3_1);

- (void)navigationController:(UINavigationController *)navigationController
willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {

UINavigationBar *bar = navigationController.navigationBar;
UINavigationItem *top = bar.topItem;
top.title = @"Photos";
UIImage *buttonImageCancel = [UIImage imageNamed:@"DoneBarButton.png"];
UIButton *buttonCancel = [[UIButton alloc] initWithFrame:CGRectMake(0,5,55, 29)];
[buttonCancel setBackgroundImage:buttonImageCancel forState:UIControlStateNormal];
[buttonCancel addTarget:self action:@selector(imagePickerControllerDidCancel:) forControlEvents:UIControlEventTouchUpInside];
[buttonCancel setTitle:@"Cancel" forState:UIControlStateNormal];
[buttonCancel setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[[buttonCancel titleLabel] setFont:[UIFont boldSystemFontOfSize:10]];
UIBarButtonItem *barButtonCancel = [[UIBarButtonItem alloc] initWithCustomView:buttonCancel];
[top setRightBarButtonItem:barButtonCancel];   }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: