我有一个像WhatsApp& ...
当我使用UIImagePickerController
来源类型提交UIImagePickerControllerSourceTypeCamera
时。
imagePicker = [UIImagePickerController new];
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.delegate = self;
imagePicker.mediaTypes =[NSArray arrayWithObjects:(NSString *)kUTTypeMovie,(NSString *)kUTTypeImage,nil];
[self presentViewController:imagePicker animated:YES completion:nil];
问题
在UIImagePickerController
模式下取消或完成捕获Video
后的某些时候,当我回到我的viewController(关闭相机)时,我的输入视图(我的Windows)以20像素(状态栏高度)到达底部),我认为我的问题与此链接How to position view below green bar during phone call?有关,因为在视频片段中,录制状态栏会显示片刻。
在某些情况下我的Windows(以前控制器中的UITabbar与底部相同)!!!
修改
解决方案仅适用于当前视图,但另一个View控制器损坏(转到底部)
答案 0 :(得分:3)
最后是Fiexed
特别感谢danialzahid94。
修复此问题,您应该致电
[self dismissViewControllerAnimated:YES completion:^{
self.view.frame = [[UIScreen mainScreen]bounds];
[self.view layoutIfNeeded];
self.tabBarController.view.frame = [[UIScreen mainScreen]bounds];
[self.tabBarController.view layoutIfNeeded]; // for fixing tabbar Controller
}];
in 2 Delegate:
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)选取器 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
答案 1 :(得分:1)
如果您使用自动布局,则可以在self.view.layoutIfNeeded()
解散时尝试UIImagePickerController
。如果这不起作用,您可以获取屏幕大小并将其分配给self.view.frame
,如下所示:
self.view.frame = UIScreen.mainScreen().bounds
这通常适合我。
答案 2 :(得分:0)
当我在更新框架后应用@Mohamad解决方案时,我点击了textView,它在键盘上方显示空白的黑色区域,当我从控制器返回时,Tabbar向下移动,所以我实现了下面的代码是永久解决方案。
<p>