我想知道如何将我的应用程序的绘图像手机上的图像一样保存,然后将其发送到服务器。
这是我的代码。
我有这门课,我在那里画画。
import Foundation
import UIKit
class Sign: UIViewController
{
@IBOutlet weak var btnSave: UIButton!
@IBOutlet weak var btnClear: UIButton!
let canvas = Canvas()
fileprivate func setupLayout() {
let stackView = UIStackView(arrangedSubviews: [btnClear,btnSave])
view.addSubview(stackView)
stackView.distribution = .fillEqually
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
stackView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
}
override func viewDidLoad() {
view.addSubview(canvas)
canvas.backgroundColor = .white
canvas.frame = view.frame
setupLayout()
}
@IBAction func ClearCanvas(_ sender: Any) {
canvas.clear()
}
@IBAction func SaveCanvas(_ sender: Any) {
}
}
我有这个 Canvas 类也有按钮的功能。只是想知道如何处理或将我的视图与绘图转换为图像并将其保存然后将其发送到服务器。
import Foundation
import UIKit
class Canvas: UIView {
func clear(){
lines.removeAll()
setNeedsDisplay()
}
override func draw(_ rect: CGRect) {
guard let context = UIGraphicsGetCurrentContext() else {return}
context.setStrokeColor(UIColor.black.cgColor)
context.setLineWidth(5)
context.setLineCap(.butt)
lines.forEach { (line) in
for (i , p) in line.enumerated(){
if i == 0 {
context.move(to: p)
} else {
context.addLine(to: p)
}
}
}
context.strokePath()
}
var lines = [[CGPoint]]()
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
lines.append([CGPoint]())
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
guard let point = touches.first?.location(in: nil) else {return}
guard var lastline = lines.popLast() else { return }
lastline.append(point)
lines.append(lastline)
setNeedsDisplay()
}
}