2013-04-07 7 views
6

मैं एक साधारण UIImagePickerController जो कैमरे का उपयोग करेगा एक तस्वीर लेने के लिए है के साथ एक कस्टम UIImagePickerController कैसे बनाएं, लेकिन नीचे दिए कुछ मैं इसे करना चाहते हैं कर रहे हैं:छवियों को पूरे स्क्रीन ios

  • है एक कस्टम कैमरा यूआई
  • (4inch फोन पर हो) 480x640 के बजाय एक पूर्ण स्क्रीन ले लो

यहाँ दिखाने के लिए UIImagePickerController मेरी कोड है:

- (IBAction)pick:(id)sender { 
    NSLog(@"abc"); 
    picker = [[UIImagePickerController alloc] init]; 
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
     [picker setSourceType:UIImagePickerControllerSourceTypeCamera]; 
    } else { 
     [picker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
    } 
    [picker setDelegate:self]; 
    [self presentViewController:picker animated:YES completion:nil]; 

} 

और यहाँ जब छवि लिया जाता है:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    [self dismissViewControllerAnimated:YES completion:nil]; 
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; 
    [imageView setImage:image]; 
} 

मैं यह करने के लिए कैसे करते हैं?

धन्यवाद

उत्तर

8

पहले बुलेट बिंदु मुझे लगता है कि आप एक UIImagePickerController वस्तु की cameraOverlayView संपत्ति पिकर डिफ़ॉल्ट इंटरफ़ेस पर अपने कस्टम यूआई जोड़ने के लिए इस्तेमाल कर सकते हैं लगता है के लिए:

- (IBAction)pick:(id)sender { 
    NSLog(@"abc"); 
    picker = [[UIImagePickerController alloc] init]; 
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
     [picker setSourceType:UIImagePickerControllerSourceTypeCamera]; 
    } else { 
     [picker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
    } 

    // Add here your custom UI here 
    [picker setCameraOverlayView:self.customCameraOverlayView]; 

    [picker setDelegate:self]; 
    [self presentViewController:picker animated:YES completion:nil]; 

} 

संपादित

मैंने UIImagePickerController का परीक्षण किया है और यह छवि को इसके पूर्ण आयामों (PixelXDimension और PixelYDimension) के साथ देता है:

UIImagePickerControllerMediaMetadata =  { 
     DPIHeight = 72; 
     DPIWidth = 72; 
     Orientation = 6; 
     "{Exif}" =   { 
      ApertureValue = "2.526068811667588"; 
      BrightnessValue = "-0.5779073354035674"; 
      ColorSpace = 1; 
      DateTimeDigitized = "2013:04:07 22:30:03"; 
      DateTimeOriginal = "2013:04:07 22:30:03"; 
      ExposureMode = 0; 
      ExposureProgram = 2; 
      ExposureTime = "0.05882352941176471"; 
      FNumber = "2.4"; 
      Flash = 24; 
      FocalLenIn35mmFilm = 35; 
      FocalLength = "4.28"; 
      ISOSpeedRatings =    (
       800 
      ); 
      MeteringMode = 3; 
      PixelXDimension = 3264; 
      PixelYDimension = 2448; 
      SceneType = 1; 
      SensingMethod = 2; 
      ShutterSpeedValue = "4.058893689053568"; 
      SubjectArea =    (
       1874, 
       1478, 
       610, 
       612 
      ); 
      WhiteBalance = 0; 
     }; 
     "{TIFF}" =   { 
      DateTime = "2013:04:07 22:30:03"; 
      Make = Apple; 
      Model = "iPhone 4S"; 
      Software = "6.1.3"; 
      XResolution = 72; 
      YResolution = 72; 
     }; 
    }; 

संपादित

इसके अलावा, आप सामग्री मोड देखने अपनी छवि को सेट कर सकते हैं आकार बदलने और कंटेनर दृश्य में फिट करने:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    [self dismissViewControllerAnimated:YES completion:nil]; 
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; 
    [imageView setContentMode:UIViewContentModeScaleAspectFill]; 
    [imageView setImage:image]; 
} 

और उसके बाद imageView फिट करने के लिए के रूप में आप की जरूरत है आप नियंत्रक को auto layout या auto sizing का उपयोग कर डिवाइस स्क्रीन (4 इंच या नहीं) को ध्यान में रखते हुए देखते हैं।

+1

दूसरा भाग काम करता था, लेकिन पहले भाग पर ओवरले केवल स्क्रीन पर है। मैं बदलना चाहता हूं कि बटन (फोटो आइकन) खुद को कैसे दिखते हैं। यह मैं कैसे करूंगा? –

+1

आप 'शो कैमरे कंट्रोल' और अपने कस्टम यूआई में डिफ़ॉल्ट नियंत्रण को छुपा सकते हैं, जिसे आपने 'कैमरा ओवरव्यू व्यू' का उपयोग करके सेट किया है, आप एक बटन के साथ एक बटन जोड़ सकते हैं जो छवि पिकर कंट्रोलर की 'ले टेकचित्र' विधि को कॉल करता है। – alexcristea

+0

ऑब्जेक्ट 'imageView' कहां से आया था? – lelelo

संबंधित मुद्दे