专家们,

我正在使用以下代码在捕获屏幕视图之前隐藏工具和导航栏。但是图像仍然显示两个条形...我在做什么错?

func generateMeme() ->UIImage {
        // Hide toolbar and navbar
        self.navigationController?.navigationBarHidden = true
        self.navigationController?.toolbarHidden = true

        // Render view to an image
        UIGraphicsBeginImageContext(self.view.frame.size)
        self.view.drawViewHierarchyInRect(self.view.frame,afterScreenUpdates:true)
        let memedImage : UIImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        // Show toolbar and navbar
        self.navigationController?.navigationBarHidden = true
        self.navigationController?.toolbarHidden = true

        return memedImage
    }

谢谢

最佳答案

我没有在做屏幕截图,但是我有一个类似的需求-我有一个viewController,其底部有一个UIToolbar,有时我想隐藏它。我为其创建了出口。并使用

@IBOutlet weak var toolBar: UIToolbar!


// later in the code where you don't want it visible anymore
toolBar.isHidden = true

但是在窗口底部仍然为工具栏分配了空间;如果scrollView中紧挨着的项目足够大,则很明显那里仍然有某些东西会阻塞空间。

我通过选择工具栏并使用“嵌入”->“堆栈视图”解决了这一问题。确保并调整stackview的约束,将每个上,下,左和右设置为0。现在同一行代码将隐藏工具栏,并且由于它位于UIStackView中,因此不再占用任何空间。

ios - iOS Swift:隐藏和取消隐藏Nav和工具栏-LMLPHP

您应该能够执行相同操作;隐藏工具栏,然后捕捉图像。

10-05 20:26
查看更多