9月 21, 2017

『Swift』使用extend方法擷取某個UIView的畫面


如果想對某個View去做螢幕截圖

該怎麼辦呢?


我們可以在你要的ViewController最外層加入以下程式碼:
extension UIView {
    func takeSnapshot() -> UIImage {
        UIGraphicsBeginImageContextWithOptions(bounds.size, false, UIScreen.main.scale)
        drawHierarchy(in: self.bounds, afterScreenUpdates: true)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image!
    }
}

之後只要在你想截圖的View上面呼叫就可以回傳對應圖片
tempImage = RootImageView.takeSnapshot() 

如果你又想把這個截圖存在相簿中,就再加一行如下:
UIImageWriteToSavedPhotosAlbum(tempImage, nil, nil, nil);



沒有留言:

Related Posts Plugin for WordPress, Blogger...