View 如何:在点击时将视图带到前面;设置最大/最小夹持手势比例;将屏幕限制设置为平移手势
注:我发现的所有东西都太旧了,或者与我实际需要的东西太不一样了,而且我几乎尝试了我发现的所有东西,但都没有找到正确的方法 我创建了3个UIView,我可以拖动它们并缩放它们。 现在,我需要:View 如何:在点击时将视图带到前面;设置最大/最小夹持手势比例;将屏幕限制设置为平移手势,view,swift4,uigesturerecognizer,View,Swift4,Uigesturerecognizer,注:我发现的所有东西都太旧了,或者与我实际需要的东西太不一样了,而且我几乎尝试了我发现的所有东西,但都没有找到正确的方法 我创建了3个UIView,我可以拖动它们并缩放它们。 现在,我需要: 把他们中的一些带到前面:我想给每个人增加一个 UITap手势,允许我将点击的UIView带到前面 将其他视图传递到后面 为UIPinchGestureRecognitor设置最大/最小刻度,以便 不能有超大的UIView或小的UIView 为UIPanGestureRecognizer设置一种屏幕限制,以便
@IBAction func tappedView1(recognizer: UITapGestureRecognizer) {
view.bringSubviewToFront(myView)
}
在您的viewDidLoad中:
let tap = UITapGestureRecognizer(target: self, action: #selector(tappedView1))
tap.cancelsTouchesInView = false
self.view.addGestureRecognizer(tap)
@iAction func handlePan(识别器:UIPangestureRecognitizer){
let translation=recognizer.translation(在:self.view中)
让statusFrame=UIApplication.shared.statusBarFrame
如果让识别器视图=recognizer.view{
如果识别器view.frame.origin.x<0.0{
recognizerView.frame.origin=CGPoint(x:0.0,y:recognizerView.frame.origin.y)
}
如果识别器view.frame.origin.yview.frame.width{
recognizerView.frame.origin=CGPoint(x:view.frame.width-recognizerView.frame.size.width,y:recognizerView.frame.origin.y)
}
如果识别器view.frame.origin.y+识别器view.frame.size.height>view.frame.height{
recognizerView.frame.origin=CGPoint(x:recognizerView.frame.origin.x,y:view.frame.height-recognizerView.frame.size.height)
}
}
如果让centerX=recognizer.view?.center.x,则让centerY=recognizer.view?.center.y{
识别器.view?.center=CGPoint.init(x:centerX+translation.x,y:centerY+translation.y)
识别器.setTranslation(CGPoint.zero,in:self.view)
}
视图。将子视图带到前面(视图1)
识别器.setTranslation(CGPoint.zero,in:self.view)
}
@IBAction func tappedView1(recognizer: UITapGestureRecognizer) {
view.bringSubviewToFront(myView)
}
let tap = UITapGestureRecognizer(target: self, action: #selector(tappedView1))
tap.cancelsTouchesInView = false
self.view.addGestureRecognizer(tap)
@IBAction func handlePan(recognizer:UIPanGestureRecognizer) {
let translation = recognizer.translation(in: self.view)
let statusFrame = UIApplication.shared.statusBarFrame
if let recognizerView = recognizer.view {
if recognizerView.frame.origin.x < 0.0 {
recognizerView.frame.origin = CGPoint(x: 0.0, y: recognizerView.frame.origin.y)
}
if recognizerView.frame.origin.y < statusFrame.height {
recognizerView.frame.origin = CGPoint(x: recognizerView.frame.origin.x, y: statusFrame.height)
}
if recognizerView.frame.origin.x + recognizerView.frame.size.width > view.frame.width {
recognizerView.frame.origin = CGPoint(x: view.frame.width - recognizerView.frame.size.width, y: recognizerView.frame.origin.y)
}
if recognizerView.frame.origin.y + recognizerView.frame.size.height > view.frame.height {
recognizerView.frame.origin = CGPoint(x: recognizerView.frame.origin.x, y: view.frame.height - recognizerView.frame.size.height)
}
}
if let centerX = recognizer.view?.center.x, let centerY = recognizer.view?.center.y {
recognizer.view?.center = CGPoint.init(x: centerX + translation.x , y: centerY + translation.y)
recognizer.setTranslation(CGPoint.zero, in: self.view)
}
view.bringSubviewToFront(view1)
recognizer.setTranslation(CGPoint.zero, in: self.view)
}