我需要使用addSubView以相機模式添加UIImagePickerController。我爲它編寫了代碼,但它在視圖的頂部留下了空白區域。使用addSubView的UIImagePickerController在視圖頂部留下白色邊緣
-(void)viewDidAppear:(BOOL)animated{
NSLog(@"ViewDidAppear");
OverlayView *overlay = [[OverlayView alloc]
initWithFrame:CGRectMake(0,0,SCREEN_WIDTH,SCREEN_HEIGTH)];
//create a new image picker instance
picker = [[UIImagePickerController alloc]init];
self.picker.delegate = self;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){
//set source to video!
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
//hide all controls
picker.showsCameraControls = NO;
picker.navigationBarHidden = NO;
picker.toolbarHidden = YES;
picker.editing = NO;
//make the video preview full size
picker.wantsFullScreenLayout = YES;
slider.value = 1;
picker.cameraViewTransform = CGAffineTransformScale(picker.cameraViewTransform,slider.value, slider.value);
//set our custom overlay view
picker.cameraOverlayView = overlay;
[picker.view addSubview:slider];
//show picker
[picker.view addSubview:capture];
[picker.view addSubview:library];
//[picker.view addSubview:multicapture];
[capture addTarget:self action:@selector(takepicture) forControlEvents:UIControlEventTouchUpInside];
[library addTarget:self action:@selector(goToLibrary) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:picker.view];
[picker viewWillAppear:YES];
[picker viewDidAppear:YES];
}else{
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Test Text" message:@"Camera is Not Availble" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil];
[alert show];
[alert release];
}
[overlay release];
}
誰能請幫助我。
謝謝。
你創建IB與模擬度量任何意見?我發現有時使用它們會導致複雜的視圖層次結構的奇怪對齊行爲(可能是由於我自己的錯誤結構) – mattacular
我已經創建了簡單的基於標籤欄的應用程序。這個代碼寫在一個標籤上的視圖控制器上 –
NSLog SCREEN_HEIGHT常量的值(你確定你拼寫正確嗎?在你的代碼中有'SCREEN_HEIGTH') – mattacular