[英]How To set Pan Gesture Limit in swift 3
我采取了两个视图,在那个视图中我采取图像视图..显示..贝尔
我需要设置限制,图像中心不要超出超视图的一边..
我正在尝试该代码,但一段时间不正常工作正常..
func panImage(tap:UIPanGestureRecognizer) {
let minx = (abs(Int((tap.view?.superview?.center.x)!)) - ((Int((tap.view?.superview?.frame.width)!))/2))
let maxx = (abs(Int((tap.view?.superview?.center.x)!)) + ((Int((tap.view?.superview?.frame.width)!))/2))
let miny = (abs(Int((tap.view?.superview?.center.y)!)) - ((Int((tap.view?.superview?.frame.height)!))/2))
let maxy = (abs(Int((tap.view?.superview?.center.y)!)) + ((Int((tap.view?.superview?.frame.height)!))/2))
let translation = tap.translation(in: tap.view)
if(Int(tap.view!.center.x) > maxx)
{tap.view!.center.x = CGFloat(maxx)}
if(Int(tap.view!.center.x) < minx)
{tap.view!.center.x = CGFloat(minx)}
if(Int(tap.view!.center.y) > maxy)
{tap.view!.center.y = CGFloat(maxy)}
if(Int(tap.view!.center.y) < miny)
{tap.view!.center.y = CGFloat(miny)}
if((Int(tap.view!.center.x) >= minx && Int(tap.view!.center.x) <= maxx ) && (Int(tap.view!.center.y) <= maxy && Int(tap.view!.center.y) >= miny))
{
tap.view!.center = CGPoint(x: tap.view!.center.x + translation.x, y: tap.view!.center.y + translation.y)
tap.setTranslation(CGPoint(x: 0.0, y: 0.0), in:tap.view)
}
}
我正在尝试正常工作的代码..
这里
func panImage(tap:UIPanGestureRecognizer) {
let minx = 0
let maxx = minx + Int((tap.view?.superview?.frame.size.width)!)
let miny = 0
let maxy = miny + Int((tap.view?.superview?.frame.size.height)!)
let translation = tap.translation(in: tap.view)
if(Int(tap.view!.center.x) > maxx)
{tap.view!.center.x = CGFloat(maxx)}
if(Int(tap.view!.center.x) < minx)
{tap.view!.center.x = CGFloat(minx)}
if(Int(tap.view!.center.y) > maxy)
{tap.view!.center.y = CGFloat(maxy)}
if(Int(tap.view!.center.y) < miny)
{tap.view!.center.y = CGFloat(miny)}
if((Int(tap.view!.center.x) >= minx && Int(tap.view!.center.x) <= maxx ) && (Int(tap.view!.center.y) <= maxy && Int(tap.view!.center.y) >= miny))
{
tap.view!.center = CGPoint(x: tap.view!.center.x + translation.x, y: tap.view!.center.y + translation.y)
tap.setTranslation(CGPoint(x: 0.0, y: 0.0), in:tap.view)
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.