मैं एक तरह से हालांकि यह एक सा आप वांछित परिणाम प्राप्त करने के लिए खोज निकाला है फिर से दृश्य जोड़ने ... इतना मानक नहीं है। :)
विचार UIImagePickerController
संरचनाओं में आंतरिक दृश्यों के क्रम को थोड़ा पुनर्व्यवस्थित करना है।
ठीक है, इसलिए हम UIImagePickerController
ऑब्जेक्ट बनाते हैं, इसे प्रारंभ करते हैं और इसमें ओवरले व्यू जोड़ते हैं। मैं आपका ध्यान इस ओर लाना चाहूँगा! उदाहरण कोड में UIView
ऑब्जेक्ट (UIImageView
) बहुत शुरुआत से छिपा हुआ है। याद मत करो। अंत में हम छवि पिकर नियंत्रक को मोडल व्यू कंट्रोलर के रूप में प्रस्तुत करते हैं। यह कोड कहीं आपके applicationDidFinishLaunching:
, viewWillAppear:
या लॉन्च विधियों के बारे में उपयुक्त होना चाहिए।
UIImagePickerController *anImagePickerController = [UIImagePickerController new];
anImagePickerController.delegate = self;
anImagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
UIImageView *anImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Watermark.png"]];
anImageView.frame = CGRectMake(0, 1, anImageView.image.size.width, anImageView.image.size.height);
anImageView.hidden = YES;
anImagePickerController.cameraOverlayView = anImageView;
[viewController presentModalViewController:anImagePickerController animated:NO];
[anImagePickerController release];
[NSTimer scheduledTimerWithTimeInterval:0.1
target:self
selector:@selector(timerFireMethod:)
userInfo:anImageView
repeats:YES];
[anImageView release];
पहले ओवरले दृश्य (anImageView
) एक NSTimer
जारी किया गया है बनाया है, anImageView
(NSTimer
userInfo
संपत्ति) के साथ प्रारंभ और तुरंत निर्धारित है।
- (void)timerFireMethod:(NSTimer*)theTimer {
UIView *cameraOverlayView = (UIView *)theTimer.userInfo;
UIView *previewView = cameraOverlayView.superview.superview;
if (previewView != nil) {
[cameraOverlayView removeFromSuperview];
[previewView insertSubview:cameraOverlayView atIndex:1];
cameraOverlayView.hidden = NO;
[theTimer invalidate];
}
}
पूरे NSTimer
बात प्रवाह में जोड़ा जाता है यह सुनिश्चित करें कि पुनर्व्यवस्था काम के आसपास वास्तव में क्या होगा जब UIImagePickerController
कि के लिए पूरी तरह तैयार हो जाएगा: यहाँ विधि कॉल है।
यह है। यह काम करता है, यह मानक नहीं है, यह मोटा और तेज़ है। फिर से अनुकूलित करने और इसे 'राइटर' बनाने के लिए स्वतंत्र महसूस करें (ओह कृपया, मेरा उद्देश्य आपको रास्ता दिखाना था)।
स्रोत
2010-01-23 12:56:04
हे मैक_55! बस आपको अपने अद्यतन उत्तर को स्वीकार/टिप्पणी करने के लिए धीरे-धीरे याद दिलाना चाहता था। –