Commit d9a0522e authored by Steven杜宇's avatar Steven杜宇

// 我的方案 添加截屏功能

parent d5d3eee0
......@@ -7,6 +7,7 @@
//
import UIKit
import Photos
class YHImproveSchemeViewController: YHBaseViewController {
......@@ -39,7 +40,7 @@ class YHImproveSchemeViewController: YHBaseViewController {
view.addSubview(rightImgV)
greetLabel.snp.makeConstraints { make in
make.top.equalTo(32)
make.top.equalTo(32+k_Height_NavigationtBarAndStatuBar)
make.left.equalTo(leftImgV.snp.right).offset(8)
make.right.equalTo(rightImgV.snp.left).offset(-8)
make.height.equalTo(34)
......@@ -92,6 +93,7 @@ class YHImproveSchemeViewController: YHBaseViewController {
tableView.register(YHImproveTargetListCell.self, forCellReuseIdentifier: YHImproveTargetListCell.cellReuseIdentifier)
tableView.register(YHIHKIdentityPlanCell.self, forCellReuseIdentifier: YHIHKIdentityPlanCell.cellReuseIdentifier)
tableView.bounces = false
tableView.backgroundView = self.bgView
return tableView
}()
......@@ -116,6 +118,17 @@ class YHImproveSchemeViewController: YHBaseViewController {
return view
}()
lazy var bgView: UIView = {
let v = UIView()
v.backgroundColor = .white
v.addSubview(bgImgView)
bgImgView.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
make.height.equalTo(528)
}
return v
}()
lazy var rightBtn: UIButton = {
let btn = UIButton()
btn.backgroundColor = .brandMainColor
......@@ -163,7 +176,7 @@ class YHImproveSchemeViewController: YHBaseViewController {
self.view.addSubview(bottomView)
tableView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalTo(k_Height_NavigationtBarAndStatuBar)
make.top.equalTo(0)
make.bottom.equalTo(bottomView.snp.top)
}
bottomView.isHidden = isPass
......@@ -254,6 +267,7 @@ extension YHImproveSchemeViewController : UITableViewDelegate, UITableViewDataSo
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.row == 1 {
UIViewController.current?.navigationController?.popToRootViewController(animated: false)
goTabBarBy(tabType: .home)
......@@ -284,12 +298,6 @@ extension YHImproveSchemeViewController: UIScrollViewDelegate {
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let scrollY = scrollView.contentOffset.y
if scrollY >= 0.0 {
bgImgView.frame.origin.y = -scrollY
} else {
bgImgView.frame.origin.y = 0.0
}
if scrollY >= 44.0 {
gk_navigationBar.backgroundColor = .init(hex: 0x082F84)
......@@ -298,3 +306,73 @@ extension YHImproveSchemeViewController: UIScrollViewDelegate {
}
}
}
extension YHImproveSchemeViewController {
@objc func clickSaveBtn() {
YHHUD.show(.progress(message: "正在生成图片"))
let originY = self.tableView.contentOffset.y
self.tableView.scrollToRow(at: IndexPath(row: 1, section: 0), at: .bottom, animated: true)
sleep(1)
self.tableView.snp.remakeConstraints { make in
make.top.equalToSuperview()
make.left.right.equalToSuperview()
make.height.equalTo(self.tableView.contentSize.height)
}
self.tableView.setNeedsLayout()
self.tableView.layoutIfNeeded()
TYSnapshotScroll.screenSnapshot(self.tableView, addMaskAfter: nil) {
[weak self] image in
YHHUD.hide()
guard let self = self else { return }
self.tableView.snp.remakeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalTo(0)
make.bottom.equalTo(self.bottomView.snp.top)
}
self.tableView.setNeedsLayout()
self.tableView.layoutIfNeeded()
if let img = image {
let targetFrame = CGRectMake(0, k_Height_NavigationtBarAndStatuBar, img.size.width, img.size.height-k_Height_NavigationtBarAndStatuBar)
let croppedImage = img.cropped(to: targetFrame)
self.saveImage(croppedImage)
DispatchQueue.main.async {
self.tableView.setContentOffset(CGPoint(x: 0, y: originY), animated: false)
}
} else {
YHHUD.flash(message: "生成图片失败")
}
}
}
func saveImage(_ image: UIImage) {
// 确保应用有权访问相册
PHPhotoLibrary.requestAuthorization { status in
if status == .authorized {
// 保存图片到相册
DispatchQueue.main.async {
UIImageWriteToSavedPhotosAlbum(image, self, #selector(self.image(image:didFinishSavingWithError:contextInfo:)), nil)
}
} else {
DispatchQueue.main.async {
YHHUD.flash(message: "保存失败,请检查系统权限")
}
}
}
}
@objc func image(image: UIImage,didFinishSavingWithError: NSError?,contextInfo: AnyObject) {
if didFinishSavingWithError != nil {
YHHUD.flash(message: "保存失败")
return
}
YHHUD.flash(message: "保存成功")
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment