博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift - 画图截取图片 - 保存相册
阅读量:7014 次
发布时间:2019-06-28

本文共 1882 字,大约阅读时间需要 6 分钟。

1.图片截取    func test(addView:UIView) -> UIImage?{        UIGraphicsBeginImageContextWithOptions(CGSize(width: JY_DEVICE_WIDTH, height: addView.height), false, UIScreen.main.scale)                if let context = UIGraphicsGetCurrentContext() {            addView.layer.render(in: context)            let imamge = UIGraphicsGetImageFromCurrentImageContext()            UIGraphicsEndImageContext()            return imamge        }        return nil    }

  

2.保存相册    方法1:直接保存, 但是没办法做提示操作或错误监听            if let img = image{               UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil)            }        方法2:可监听系统方法            if let img = self.test(addView: tempView){            UIImageWriteToSavedPhotosAlbum(img,     self,#selector(image(image:didFinishSavingWithError:contextInfo:)), nil)        }        //图片保存到本地    @objc func image(image:UIImage,didFinishSavingWithError error:NSError?,contextInfo:AnyObject) {        if error != nil        {            print("--\(image)---","++++\(String(describing: error))++++")            return        }else{            view.showSuccessInfo(info: "图片保存成功")        }    }

  

3.  保存的时候    (1)必须 重新创建一个临时tempView, 加到当前VC上,然后获取图片,保存到相册,   (2)如果直接用VC的原来的self.view或者SV啥的, 没效果,不知道是啥问题   (3)移除顺序, 先加到原来view上,在移除tempview       let tempView = UIView()        tempView.bounds = CGRect(x: 0, y: 0, width: JY_DEVICE_WIDTH, height: scroller.contentSize.height)        view.addSubview(tempView)        configScroller(addView: tempView)                if let img = self.test(addView: tempView){            UIImageWriteToSavedPhotosAlbum(img, self, #selector(image(image:didFinishSavingWithError:contextInfo:)), nil)        }else{            view.showTipsInfo(tips: "图片不存在")        }        //先添加到SV上在u移除, 不然子控件位置会 异常        configScroller(addView: scroller)        tempView.removeFromSuperview()

  

转载于:https://www.cnblogs.com/qingzZ/p/9914697.html

你可能感兴趣的文章