1
我已将ImageView
作为子视图添加到Swift中的集合视图中。本子视图的初始点在viewDidLoad()
的锚点中进行布置。但是,在视图中点击手势后退出键盘后,ImageView
会回到原始位置。我怎么能最好地解决这个问题?如何保持subview,移动平移手势,在辞职键盘后的位置?
import UIKit
class MessageViewController: UICollectionViewController,UICollectionViewDelegateFlowLayout {
let imageButton: UIImageView = {
let imageButtonView = UIImageView()
imageButtonView.image = UIImage(named: "image.png")
imageButtonView.layer.cornerRadius = 30
imageButtonView.layer.masksToBounds = true
imageButtonView.isUserInteractionEnabled = true
return imageButtonView
}()
override func viewDidLoad() {
super.viewDidLoad()
//add imageButton
view.addSubview(imageButton)
// recognize tapgesture for removing keyboard
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.tap(gesture:)))
self.view.addGestureRecognizer(tapGesture)
let panGesture = UIPanGestureRecognizer(target: self, action: #selector(self.handlePan(gesture:)))
imageButton.addGestureRecognizer(panGesture)
}
func handlePan(gesture: UIPanGestureRecognizer) {
let translation = gesture.translation(in: self.view)
if let view = gesture.view {
view.center = CGPoint(x:view.center.x + translation.x, y:view.center.y + translation.y)
}
gesture.setTranslation(CGPoint.zero, in: self.view)
}
imageButton.translatesAutoresizingMaskIntoConstraints = false
imageButton.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
imageButton.centerYAnchor.constraint(equalTo: view.centerYAnchor, constant: 30).isActive = true
imageButton.heightAnchor.constraint(equalToConstant: 60).isActive = true
imageButton.widthAnchor.constraint(equalToConstant: 60).isActive = true
}
请分享一些代码和视觉效果,以帮助我们更好地理解你的问题。 – dmorrow
我添加了一些代码。希望这将有助于回答我的问题。一旦视图被加载,这给我一个在屏幕中间的图像。之后我可以随意拖动它。但是,只有在退出键盘后,图像才会回到原来的位置。 – Bob