ios – Swift – Tinder效果

ios – Swift – Tinder效果,第1张

概述如何在 Swift中实现Tinder效果? 我的意思是,我有一个图像,如果我向右滑动并且如果我向左滑动则拒绝接受. 我可以用下面的代码来做: @IBAction func SwipeRight(sender: UISwipeGestureRecognizer) { UIView.animateWithDuration(1) { self.Imagem.center = CG 如何在 Swift中实现Tinder效果?

我的意思是,我有一个图像,如果我向右滑动并且如果我向左滑动则拒绝接受.

我可以用下面的代码来做:

@IBAction func SwipeRight(sender: UISwipeGestureRecognizer) {    UIVIEw.animateWithDuration(1) {        self.Imagem.center = CGPointMake(self.Imagem.center.x - 150,self.Imagem.center.y )    }    //other things after acception}

@IBAction func Swipeleft(sender: UISwipeGestureRecognizer) {    UIVIEw.animateWithDuration(1) {        self.Imagem.center = CGPointMake(self.Imagem.center.x + 150,self.Imagem.center.y )    }    //other things after rejection}

但这样用户无法取消 *** 作.我希望如果用户从边缘(左侧或右侧)滑动到三角形距离,则会出现一个图像,让用户现在可以看到,如果他结束了移动,则会发生动作.否则,用户可以在不结束移动的情况下返回到大于delta的距离,并且动作将被取消.

解决方法 我想感谢那些提出解决方案的人.在Stack Overflow的很多人的帮助下,遵循我开发的解决方案:
@IBAction func Arrastei(sender: UIPanGestureRecognizer) {    var origem =  CGPoint(x: 0,y: 0)    var translation : CGPoint = sender.translationInVIEw(Imagem)    var txy : CGAffinetransform = CGAffinetransformMakeTranslation(translation.x,-abs(translation.x) / 15)    var rot : CGAffinetransform = CGAffinetransformMakeRotation(-translation.x / 1500)    var t : CGAffinetransform = CGAffinetransformConcat(rot,txy);    Imagem.transform = t    if (translation.x > 100) {        LbResultado.textcolor = btVerdadeiro.textcolor        LbResultado.text = btVerdadeiro.text        LbResultado.hIDden = false    } else {        if (translation.x < -100) {            LbResultado.textcolor = btFalso.textcolor            LbResultado.text = btFalso.text            LbResultado.hIDden = false        } else {            LbResultado.hIDden = true        }    }    if sender.state == UIGestureRecognizerState.Ended {        if (translation.x > 100) {            objJogo.Rodada_Vigente!.Responder(true)        } else {            if (translation.x < -100) {                objJogo.Rodada_Vigente!.Responder(false)            } else {                sender.vIEw.transform = CGAffinetransformMakeTranslation(origem.x,origem.y)                sender.vIEw.transform = CGAffinetransformMakeRotation(0)            }        }    }}

此解决方案使用:

Imagem – > UIImageVIEw – 被接受或拒绝

LbResultado – > UITextVIEw – 向用户显示他处于接受或拒绝区域

没有数学计算来设置旋转和平移.我使用的值给了我视觉上很好的效果.

动作(接受和拒绝)区域是指用户将图像拖动到左侧(拒绝)或右侧(接受)超过100个像素.如果用户结束了移出动作区域的移动,则图像将返回其原始位置.

如果有人建议对此代码进行改进,我将很高兴.

总结

以上是内存溢出为你收集整理的ios – Swift – Tinder效果全部内容,希望文章能够帮你解决ios – Swift – Tinder效果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1097547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存