Skip to main content
 首页 » 操作系统

ios之UIImagePickerController 在关闭时弄乱标签栏框架

2024年01月01日45mengfanrong

我试图在 UITabBarController 内的 UIViewController 中显示 UIImagePickerController

源类型相机
媒体类型kUTTypeMovie

显示 UIImagePickerController 没有问题,但是当关闭 TabBar 时,它会向下移动一半高度,它只是有时会发生......其他情况下它会完美关闭。

override func viewDidLoad() { 
 
    var test: UIButton = UIButton(frame:CGRectMake(140, 200, 100, 100)) 
    test.backgroundColor = UIColor.redColor() 
    test.addTarget(self, action:"presentCamera", forControlEvents: .TouchDown) 
    self.view.addSubview(test) 
} 
 
func presentCamera(){ 
    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera){ 
        imag.mediaTypes = [kUTTypeMovie] 
        imag.delegate = self 
        imag.sourceType = UIImagePickerControllerSourceType.Camera; 
        imag.videoQuality = UIImagePickerControllerQualityType.TypeMedium 
        imag.videoMaximumDuration = 120 
        imag.allowsEditing = false 
        self.presentViewController(imag, animated: true, completion:{println("showing")}) 
    } 
 
} 
 
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) { 
    let library = ALAssetsLibrary() 
    var videoTemp = info[UIImagePickerControllerMediaURL] as NSURL 
    videoPath = videoTemp.relativePath 
    UISaveVideoAtPathToSavedPhotosAlbum(videoPath, self, nil, nil) 
    picker.dismissViewControllerAnimated(true, completion:{ 
        println("video selected") 
    })     
} 
 
func imagePickerControllerDidCancel(picker: UIImagePickerController) { 
    picker.dismissViewControllerAnimated(true, completion:{ 
        println("canceled") 
    }) 
} 

它还显示此错误:

"Snapshotting a view that has not been rendered results in an empty snapshot. Ensure your view has been rendered at least once before snapshotting or snapshot after screen updates."

这是应用程序和错误外观的视频:

https://www.youtube.com/watch?v=o1BgLbZgsfw

请您参考如下方法:

这里已经有人问过了:

Redbar Noticed when dismissing UIImagePickerController

我还注意到解雇时的红色状态栏,使用这个解决了:

您应该在 .plist 中将“View controller-based status bar appearance”值设置为 YES