如何防止后退按钮消失?

我正在创建带有“ X”作为关闭/关闭按钮的涂鸦页面。 我还有一个“清除”按钮,可删除已制作的涂鸦。

我的问题是,当我按清除键时,即使X按钮消失了,如何防止这种情况发生?

这是我当前的应用。

如何防止后退按钮消失?

这是我的Doodle课程,可让我在视图上绘画。

import UIKit

class DoodleView: UIView {

    var lineColor:UIColor!
    var lineWidth:CGFloat!
    var path:UIBezierPath!
    var touchPoint:CGPoint!
    var startingPoint:CGPoint!

    override func layoutSubviews() {
        self.clipsToBounds = true
        self.isMultipleTouchEnabled = false

        lineColor = UIColor.white
        lineWidth = 10
    }


    override func touchesBegan(_ touches: Set<UITouch>,with event: UIEvent?) {
        let touch = touches.first
        startingPoint = touch?.location(in: self)
    }

    override func touchesmoved(_ touches: Set<UITouch>,with event: UIEvent?) {
        let touch = touches.first
        touchPoint = touch?.location(in: self)

        path = UIBezierPath()
        path.move(to: startingPoint)
        path.addLine(to: touchPoint)
        startingPoint = touchPoint

        drawShapelayer()
    }

    func drawShapelayer() {
        let shapelayer = CAShapelayer()
        shapelayer.path = path.cgPath
        shapelayer.strokeColor = lineColor.cgColor
        shapelayer.lineWidth = lineWidth
        shapelayer.fillColor = UIColor.clear.cgColor
        self.layer.addSublayer(shapelayer)
        self.setNeedsDisplay()
    }

    func clearCanvas() {
        path.removeAllPoints()
        self.layer.sublayers = nil
        self.setNeedsDisplay()
    }
}

这是控制视图控制器的类。

import UIKit

class DoodlePageViewController: UIViewController {


    @IBOutlet weak var doodleView: DoodleView!

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }


    @IBaction func clearDoodle(_ sender: Any) {
        doodleView.clearCanvas()
    }


    @IBaction func CloseDoodlePage(_ sender: Any) {
        dismiss(animated: true,completion: nil)
    }
}
a35689 回答:如何防止后退按钮消失?

没有真正看到如何声明按钮,我只能猜测,当您调用函数router.post('/api/user/login',(request,response) => { ... response.setHeader('Access-Control-Allow-Credentials',true); response.setHeader('Access-Control-Allow-Headers','Content-Type'); response.setHeader('Access-Control-Allow-Method','get','post','options'); response.setHeader('Access-Control-Allow-Origin',request.get('Origin')); response.setHeader('Access-Control-Max-Age','86400') response.setHeader('Access-Control-Expose-Headers','Access-Control-Allow-Origin'); ... 时,由于您设置了clearCanvas(),因此X按钮是Doodle视图中子层的一部分,因此它也消失了。

创建时,请确保X按钮位于涂鸦视图的顶部。

,

调用self.layer.sublayers = nil

时,您将从视图中清除所有子视图

您要么需要将“ x”视图重新添加回层次结构中。我假设使用您的函数drawShapeLayer()是'x'??

应该是

func clearCanvas() {
    path.removeAllPoints()
    self.layer.sublayers = nil

    drawShapeLayer()
    self.setNeedsDisplay()
}
本文链接:https://www.f2er.com/2925382.html

大家都在问