我目前正在为 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];
}