iPhone: Nakładka podglądu kamery
Jak dodać nakładkę (UIImageView
) do podglądu kamery i
dotknij tego?
Moje poprzednie próby zrobienia tego (np. użycie UIImagePickerController
i dodanie obrazu jako podglądu podrzędnego) zakończyły się niepowodzeniem.
4 answers
Ten tutorial to wyjaśnia: http://www.musicalgeometry.com/?p=821
Po prostu dodaj interfejs w widoku nakładki zamiast czerwonego obszaru pokazanego w samouczku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-17 19:41:33
Do pliku implementacji:
- (IBAction)TakePicture:(id)sender {
// Create image picker controller
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
// Set source to the camera
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
// Delegate is self
imagePicker.delegate = self;
OverlayView *overlay = [[OverlayView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
// Insert the overlay:
imagePicker.cameraOverlayView = overlay;
// Allow editing of image ?
imagePicker.allowsImageEditing = YES;
[imagePicker setCameraDevice:
UIImagePickerControllerCameraDeviceFront];
[imagePicker setAllowsEditing:YES];
imagePicker.showsCameraControls=YES;
imagePicker.navigationBarHidden=YES;
imagePicker.toolbarHidden=YES;
imagePicker.wantsFullScreenLayout=YES;
self.library = [[ALAssetsLibrary alloc] init];
// Show image picker
[self presentModalViewController:imagePicker animated:YES];
}
Stwórz klasę UIView i dodaj ten kod
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
// Clear the background of the overlay:
self.opaque = NO;
self.backgroundColor = [UIColor clearColor];
// Load the image to show in the overlay:
UIImage *overlayGraphic = [UIImage imageNamed:@"overlaygraphic.png"];
UIImageView *overlayGraphicView = [[UIImageView alloc] initWithImage:overlayGraphic];
overlayGraphicView.frame = CGRectMake(30, 100, 260, 200);
[self addSubview:overlayGraphicView];
}
return self;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-06 12:29:48
Możesz dodać UIImageView
jako podgląd głównego okna bezpośrednio zamiast UIImagePicker
, może to działać lepiej. Po prostu upewnij się, że dodasz je w odpowiedniej kolejności lub zadzwoń
[window bringSubviewToFront:imageView];
Po uruchomieniu kamery.
Jeśli chcesz obsłużyć dotknięcia na UIImageView
, możesz po prostu dodać UIImageView
jako podgląd normalnego pełnoekranowego View
z przezroczystym tłem, a zamiast tego dodać to do okna, za pomocą zwykłej UIViewController
podklasy, której możesz użyć do obsługi dotyku wydarzenia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-16 13:28:41
Zobacz widok nakładki kamery (dostępny w wersji 3.1 i nowszej)
@property(nonatomic, retain) UIView *cameraOverlayView
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-08 17:45:53