Удалить вид, когда вызывается touchesEnded - PullRequest
0 голосов
/ 29 сентября 2019

Я использую touchesBegan, чтобы добавить вид на экран, когда пользователь касается и удерживает палец на экране

См. Пример ниже

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        if let touch = touches.first {
            let location = touch.location(in: view)
            let dot = CustomTouch(frame: CGRect(x: location.x, y: location.y, width: 80, height: 80))
            dot.backgroundColor = randomColors[0]
            self.view.addSubview(dot)
        }
    }

Я хочу определить, когда пользователь поднимаетпальцем от экрана, затем удалите вид, который был добавлен в этой позиции. Я хотел бы несколько идей о том, как этого достичь

Ответы [ 2 ]

0 голосов
/ 29 сентября 2019

Это сработало для меня: 1) создать словарь для хранения каждого созданного «CustomTouch» для этого конкретного прикосновения 2) когда touchesEnded, я удалю объект с этой клавишей (UITouch)

0 голосов
/ 29 сентября 2019

Добавьте свойство для добавленного представления вместо создания на лету, а затем удалите, если оно существует, на touchesEnded:

var dot: CustomTouch?

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    if let touch = touches.first {
        let location = touch.location(in: view)
        dot = CustomTouch(frame: CGRect(x: location.x, y: location.y, width: 80, height: 80))
        dot.backgroundColor = randomColors[0]
        self.view.addSubview(dot)
    }
}

override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
    dot?.removeFromSuperview()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...