草庐IT

iOS swift : Hide and unhide Nav and tool bars

coder 2023-09-14 原文

专家,

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

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
    }

谢谢

最佳答案

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

@IBOutlet weak var toolBar: UIToolbar!


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

但是窗口底部的工具栏仍然有分配的空间;如果它旁边的 scrollView 中的项目足够大,那么很明显仍然有东西阻挡空间。

我通过选择工具栏并使用嵌入 -> 堆栈 View 解决了这个问题。确保并调整堆栈 View 的约束,将每个顶部、底部、左侧和右侧设置为 0。现在同一行代码将隐藏工具栏,并且因为它在 UIStackView 中,它不再占用任何空间。

你应该也能做到;隐藏工具栏,然后捕捉图像。

关于iOS swift : Hide and unhide Nav and tool bars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32573744/

有关iOS swift : Hide and unhide Nav and tool bars的更多相关文章

随机推荐