[Swift] view, label등에 드래그 앤 드롭 기능 추가하기!!
프로그래밍/iOS(Swift)2024. 4. 15. 15:35
반응형
view에 드래그 앤 드롭, 그러니깐 클릭해서 이동할 수 있는 기능을 구현하는 방법입니다
let label = UILabel()
label.text = "안녕하세요!"
label.textColor = .black
label.textAlignment = .center
label.translatesAutoresizingMaskIntoConstraints = false
label.tag = labelCount
view.addSubview(label)
NSLayoutConstraint.activate([
label.centerXAnchor.constraint(equalTo: view.centerXAnchor),
label.centerYAnchor.constraint(equalTo: view.centerYAnchor),
])
let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(handlePanGesture(_:)))
label.addGestureRecognizer(panGestureRecognizer)
label.isUserInteractionEnabled = true
위와 같이 뷰를 수동으로 만들어 줍니다
저는 uiLabel을 만들었지만 다른 뷰를 만들어도 됩니다
그리고 UIPanGestureRecognizer를 연결해 주면 됩니다
@objc func handlePanGesture(_ sender: UIPanGestureRecognizer) {
guard let label = sender.view as? UILabel else { return }
let translation = sender.translation(in: view)
label.center = CGPoint(x: label.center.x + translation.x, y: label.center.y + translation.y)
sender.setTranslation(.zero, in: view)
}
반응형