我想在swift 3中将视图拖到其他视图中,我搜索了许多方法,但它们都在objective-C中。
任何 swift 的帮助将不胜感激。
谢谢
您可以使用以下命令简单地实现相同的目的:
@IBAction func handlePan(_ recognizer: UIPanGestureRecognizer) {
let translation: CGPoint = recognizer.translation(in: view)
let recognizerFrame: CGRect? = recognizer.view?.frame
recognizerFrame?.origin.x += translation.x
recognizerFrame?.origin.y += translation.y
if view.bounds.contains(recognizerFrame) {
recognizer.view?.frame = recognizerFrame
}
else {
// Check vertically
if recognizerFrame?.origin.y < view.bounds.origin.y {
recognizerFrame?.origin.y = nil
}
else if recognizerFrame?.origin.y + recognizerFrame?.size.height > view.bounds.size.height {
recognizerFrame?.origin.y = view.bounds.size.height - recognizerFrame?.size.height
}
if recognizerFrame?.origin.x < view.bounds.origin.x {
recognizerFrame?.origin.x = nil
}
else if recognizerFrame?.origin.x + recognizerFrame?.size.width > view.bounds.size.width {
recognizerFrame?.origin.x = view.bounds.size.width - recognizerFrame?.size.width
}
recognizer.setTranslation(CGPoint(x: 0, y: 0), in: view)
}
oldView.addSubview(newView)
newView.leftAnchor.constrains(equalTo: oldView.leftAnchor).isActive = true
newView.rightAnchor.constrains(equalTo: oldView.rightAnchor).isActive = true
newView.topAnchor.constrains(equalTo: oldView.topAnchor).isActive = true
newView.bottomAnchor.constrains(equalTo: oldView.bottomAnchor).isActive = true