...

반응형

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)  
}
반응형