Переместите кнопку влево касанием пальца и вернитесь к ее первому положению, когда коснитесь конца ios Swift

Я новичок в Swift и работаю с приложением, в котором я двигаю свою зеленую кнопку (показано на рисунке), перемещая палец влево, а когда палец убирается с кнопки, кнопка перемещается в предыдущее положение. Также есть четыре различных фоновых изображения кнопки, которые меняются после каждого перемещения кнопки из текущей позиции в левую сторону. Но я не могу понять, как я это делаю. Пожалуйста, помогите мне сделать мою задачу.

введите описание изображения здесь

Вот мой код

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {


    location = ((touches.first)?.location(in: self.view))!

    let position = view.convert(location, to: view)

    print("Touches Began \(location)")
    }

override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {

    location = ((touches.first)?.location(in: self.view))!

    let position = view.convert(location, to: view)

    print("touches Moved: \(location)")
}

override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {

    // dont know how i perform

}

1 ответ

Решение
    @IBOutlet weak var yourButtonOutlet: UIButton!
override func viewDidLoad() {
    super.viewDidLoad()
    yourButtonOutlet.addTarget(self, action: #selector(t1),for: .touchUpInside)
    yourButtonOutlet.addTarget(self, action: #selector(t2),for: .touchDown)



    // Do any additional setup after loading the view.
}
func t1() {
    print("touch end")
    yourButtonOutlet.frame = CGRect(x: yourButtonOutlet.frame.origin.x + 50, y: yourButtonOutlet.frame.origin.y, width: yourButtonOutlet.frame.size.width, height: yourButtonOutlet.frame.size.height)

}
func t2() {
    print("touch Start")
    yourButtonOutlet.frame = CGRect(x: yourButtonOutlet.frame.origin.x - 50, y: yourButtonOutlet.frame.origin.y, width: yourButtonOutlet.frame.size.width, height: yourButtonOutlet.frame.size.height)

}

// и для изменения изображения по кнопке

var selected  = true
@IBAction func btnUserAction(_ sender: UIButton) {
    if selected  == true {
        sender.setImage(UIImage.init(named: "tick"), for: .normal)
        selected = false;
    }
    else{
        sender.setImage(UIImage.init(named: "unTick"), for: .normal)
        selected = true;
    }
}
Другие вопросы по тегам