gpt4 book ai didi

swift - 使用背景颜色在 UITableViewCell 上设置长按动画

转载 作者:行者123 更新时间:2023-11-28 13:21:46 24 4
gpt4 key购买 nike

我想在 Longpress 上为我的 UITableViewCell 制作动画。

当用户开始按住一个单元格时,它应该变成浅绿色 - 按住单元格后,颜色应该变得更深,变成深绿色,然后触发一个事件,Longpressgesture 是完成。

这是我的普通 Longpress 识别器

// In the viewDidLoad
var longPress = UILongPressGestureRecognizer(target: self, action: "respondToLPGesture:")

longPress.minimumPressDuration = 2;


func respondToLPGesture(gesture: UIGestureRecognizer) {

if(gesture.state == UIGestureRecognizerState.Began) {

}
}

我是否需要将 minimumPressDuration 设置为 0.1 秒,然后再添加一个额外的等待时间?或者我该如何快速处理?谢谢

最佳答案

UILongPressGestureRecognizer 的工作方式是在 minimumPressDuration 被点击后,给定的选择器将以不同的状态重复触发。

首先,您的方法将被触发,状态为 UIGestureRecognizerStateBegan。这是您开始为单元格着色的时候。此时我建议使用 CACurrentMediaTime() 存储时间。

然后您的方法将被触发,状态为 UIGestureRecognizerStateChanged。在这里,您可以检查当前的 CACurrentMediaTime() 与您在开始时存储的那个,并使用增量来计算您想要的绿色的强度。

长按手势将以 if UIGestureRecognizerStateEnded 状态结束,您可以在此处进行完成处理。

所以:

func respondToLongPressGesture(gesture: UILongPressGestureRecognizer)
{
switch gesture.state
{
case .Began:
self.beginPressTime = CACurrentMediaTime()
case .Changed:
var deltaTime = CACurrentMediaTime() - self.beginPressTime
var greenColor = self.greenColourForTimeDelta(deltaTime)
gesture.view.backgroundColor = greenColor
case .Ended:
self.gestureDidFinish(gesture)
}
}

关于swift - 使用背景颜色在 UITableViewCell 上设置长按动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24905436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com