В настоящее время я делаю приложение для камеры для iPhone, и у меня есть странное явление, которое я не могу понять.Я был бы признателен за помощь в понимании.
При воссоздании оверлейного представления для передачи в UIImagePickerController я успешно смог создать представление программным способом.Чего я не смог сделать, так это создать представление с / без контроллера в IB, загрузить его и успешно передать его наложенному указателю.Если я делаю это через IB, вид не является непрозрачным и полностью скрывает вид камеры.Я не могу понять, почему.
Я думал, что обычный указатель view
может быть назначен при загрузке из XIB и, следовательно, перезаписать вид камеры, но у меня есть программный пример, где view и overlayView установлены равнымив классе контроллера.Возможно, порядок загрузки перезаписывает указатель?
Помощь была бы признательна ... С уважением.
Это прекрасно работает ...
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// dislodge the MainView from the MainViewController
//
MainViewController *aController = [[MainViewController alloc] init]; //WithNibName:@"MainView" bundle:nil];
aController.sourceType= UIImagePickerControllerSourceTypeCamera;
aController.delegate= aController;
aController.showsCameraControls= NO;
// Programmatically load the MainView from the Nib and assign it as the OverlayView instead
//
NSArray* nibViews= [[NSBundle mainBundle] loadNibNamed:@"MainView" owner:aController options:nil];
UIView* uiView= [nibViews objectAtIndex:0];
uiView.opaque= NO;
uiView.backgroundColor= [UIColor clearColor];
aController.cameraOverlayView= uiView;
self.mainViewController = aController;
[aController release];
mainViewController.view.frame = [UIScreen mainScreen].applicationFrame;
[window addSubview:[mainViewController view]];
[window makeKeyAndVisible];
}
Это НЕ ДЕЛАЕТ...
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// dislodge the MainView from the MainViewController
//
MainViewController *aController = [[MainViewController alloc] initWithNibName:@"MainView" bundle:nil];
aController.sourceType= UIImagePickerControllerSourceTypeCamera;
aController.delegate= aController;
aController.showsCameraControls= NO;
aController.cameraOverlayView= aController.view;
self.mainViewController = aController;
[aController release];
mainViewController.view.frame = [UIScreen mainScreen].applicationFrame;
[window addSubview:[mainViewController view]];
[window makeKeyAndVisible];
}