मेरे ऐप के एक स्थान पर, मुझे कैमरे का उपयोग करने की आवश्यकता है, इसलिए मैं UIImagePickerController
पर कॉल करता हूं। दुर्भाग्यवश, एक बार जब मैं नियंत्रक से वापस आ जाता हूं, तो ऐप में अधिकांश चित्र पूर्ण आकार होते हैं, इससे कोई फर्क नहीं पड़ता कि उनके UIImageView
गुण क्या कहते हैं। अपवाद UIImageView
एस UITableViewCell
एस में प्रतीत होता है। यह ऐप में सभी विचारों पर लागू होता है, न केवल उन लोगों के लिए जिनके पास व्यू कंट्रोलर से सीधा कनेक्शन है जिसे UIImagePickerController
कहा जाता है। एक बार जब मैं चारों ओर गड़बड़ कर रहा था, समस्या निवारण करने की कोशिश कर रहा था, तो समस्या खुद ही गायब हो गई, हालांकि मैं इसे दोहराने में सक्षम नहीं हूं।UIImagePickerController अन्य दृश्यों में छवियों को पूर्ण आकार
कोड निम्नानुसार है।
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if(![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){
UIAlertView *errorAlertView = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Device has no camera"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[errorAlertView show];
[_app.navController popPage];
}
else if(firstTime){
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
firstTime = false;
[self presentViewController:picker animated:YES completion:NULL];
}
}
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *cameraImage = info[UIImagePickerControllerEditedImage];
[picker dismissViewControllerAnimated:YES completion:NULL];
NSString *folderName = @"redApp";
if([_page hasChild:[RWPAGE FOLDER]]){
folderName = [_page getStringFromNode:[RWPAGE FOLDER]];
}
NSDate *datetimeNow = [[NSDate alloc] init];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd_HH-mm-ss-SSS"];
NSString *filename = [NSString stringWithFormat:@"%@.png",[dateFormatter stringFromDate:datetimeNow]];
NSString *applicationDocumentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *folderPath = [applicationDocumentsDir stringByAppendingPathComponent:folderName];
NSString *filePath = [folderPath stringByAppendingPathComponent:filename];
NSError *error = nil;
if(![[NSFileManager defaultManager] fileExistsAtPath:folderPath isDirectory:nil]){
[[NSFileManager defaultManager] createDirectoryAtPath:folderPath withIntermediateDirectories:NO
attributes:nil error:&error];
}
if(error != nil){
NSLog(@"Create directory error: %@", error);
}
[UIImagePNGRepresentation(cameraImage) writeToFile:filePath options:NSDataWritingAtomic error:&error];
if(error != nil){
NSLog(@"Error in saving image to disk. Error : %@", error);
}
RWXmlNode *nextPage = [_xml getPage:[_page getStringFromNode:[RWPAGE CHILD]]];
nextPage = [nextPage deepClone];
[nextPage addNodeWithName:[RWPAGE FILEPATH] value:filePath];
[_app.navController pushViewWithPage:nextPage];
}
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
[picker dismissViewControllerAnimated:YES completion:NULL];
[_app.navController popPage];
}
संपादित करें: ऊपर पर विस्तार करने के लिए।
ऐप का आधार कस्टम कंटेनर व्यू कंट्रोलर है, जो ज्यादातर नेविगेशन कंट्रोलर की तरह काम करता है। जब कोई उपयोगकर्ता किसी पृष्ठ पर जाता है (जिसे मैं दृश्य के संयोजन को कॉल करता हूं और नियंत्रक को देखता हूं) यह कस्टम कंटेनर दृश्य पर प्रदर्शित होता है, और पिछला पृष्ठ एक ढेर में संग्रहीत होता है।
मेरे पृष्ठों में से एक UIImagePicker पर कॉल करता है। एक बार छवि पिकर फिर से बंद हो जाने के बाद, और मैं ऐप पर वापस आ जाता हूं, जब मैं नए पेज खोलता हूं तो ऐप में समस्याएं दिखाई देती हैं। मुझे हर पृष्ठ पर समस्या नहीं दिखाई देती है, लेकिन वे कई स्वतंत्र पृष्ठों पर हैं। अधिकांश पृष्ठ पूरी तरह से अप्रभावित दिखते हैं, जबकि समस्या पृष्ठ उनकी बाधाओं का पालन नहीं करते हैं।
यदि आप छवि का आकार फिर से बनाना चाहते हैं तो कृपया [इस लिंक] [1] का पालन करें। [1]: http://stackoverflow.com/a/6573100/2869784 –
मैं काफी अपने प्रश्न नहीं मिलता है। लेकिन क्या आपने [UIImageView setContentMode: UIViewContentModeScaleAspectFill] का उपयोग करने का प्रयास किया है; अगर मैं स्पष्ट हूं कि मुझे लगता है कि आपके xib में UIImageView है और जब भी आप छवि खोलते हैं तो यह एक निश्चित आकार होता है तो यह पूर्ण स्क्रीन मोड में खुलता है? अपने UIImageView फ्रेम आकार का उपयोग किए बिना? यदि ऐसा है तो अपने UIImageView के सामग्री मोड का उपयोग करने का प्रयास करें और जांचें कि यह ऑटो आकार बदल नहीं रहा है। – artud2000
मेरे पास कई अलग-अलग पेज/विचार हैं, प्रत्येक अपने स्वयं के xib और नियंत्रक को देखते हैं। यह समस्या ऐप में फैली हुई है। चित्रों में xib में सभी सामग्री कोड सेट होते हैं (अधिकांशतः पहलू भरने के लिए), और उस बिंदु तक ठीक से काम करते हैं जहां मैं UIImagePicker कहता हूं। मैंने सामग्री दृश्य को दृश्य में एक दृश्य में सेट किया है और अब छवि का सही आकार है, लेकिन बाकी का दृश्य खराब हो गया है, मेरे शीर्षक टेक्स्टव्यू स्क्रीन से गायब हो गए हैं, और मेरे शरीर टेक्स्टव्यू दोनों के बाहर विस्तारित है पक्षों। या तो बाधाएं खराब हो जाती हैं, या माता-पिता के दृश्य का आकार। – Rubberduck