Ich habe herausgefunden eine Möglichkeit für Sie nehmen das gewünschte Ergebnis zu erzielen, wenn es etwas ist ... nicht so Standard. :)
Die Idee ist es, ein wenig die Reihenfolge der inneren Ansichten in der Struktur UIImagePickerController
neu anzuordnen verwendet.
OK, also erstellen wir ein UIImagePickerController
Objekt, initialisieren es und fügen eine Overlay-Ansicht hinzu. Dürfte ich um eure Aufmerksamkeit bitten! Das Objekt UIView
(UIImageView
im Beispielcode) ist von Anfang an ausgeblendet. Verpassen Sie das nicht. Schließlich präsentieren wir den Bilderwähler-Controller als Modal-View-Controller. Dieser Code sollte irgendwo in Ihrem applicationDidFinishLaunching:
, viewWillAppear:
oder ähnlichen geeigneten Startmethoden sein.
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];
Vor der Überlagerungsansicht (anImageView
) ein NSTimer
freigegeben wird, wird erstellt, initialisiert mit anImageView
(NSTimer
userInfo
Eigentum) und sofort geplant. Hier ist die Methode ruft:
- (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];
}
}
Die ganze NSTimer
Sache der Strömung hinzugefügt wird, um sicherzustellen, dass die Umordnung Arbeit um genau passieren wird, wenn die UIImagePickerController
völlig bereit sein wird, dafür.
Das ist es. Es funktioniert, es ist kein Standard, es ist grob und schnell. Wiederum kannst du es optimieren und es 'righter' machen (ach bitte, mein Ziel war es, dir den Weg zu zeigen).
Hey mac_55! Ich wollte dich nur sanft daran erinnern, meine aktualisierte Antwort zu akzeptieren/kommentieren. –