iphone – UITableViewCell平移显示选项:动画
所以我在tableview单元格上有很好的平移实现.我基本上使用panGestureRecognizer并将单元格移出屏幕,并在tableViewCell下方显示另一个视图.这工作正常.当我在tableViewCell上平移时,我基本上会在下面显示5个按钮.
我的目标是在tableviewcell移动时为5个按钮设置动画.例如, | 1 | 2 | 3 | 4 | 5 | 如果我正在滑动,并且向右移动单元格并且我是十字按钮1,我将动画按钮弹出并对用户可见. 我这样做 //Scale Animation CABasicAnimation *scaleAnim = [CABasicAnimation animationWithKeyPath:@"transform"]; scaleAnim.duration = 0.3; scaleAnim.toValue = [NSValue valueWithCATransform3D:CATransform3DIdentity]; scaleAnim.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1,0.1,1.0)]; scaleAnim.removedOnCompletion = YES; [view.layer addAnimation:scaleAnim forKey:nil]; ** 我的目标 : ** 因此,当我处于平移手势的中间,并且我决定关闭它(向左移动)时,按钮应该弹出,并且对用户不可用. 此外,当我移动单元格时,按钮应逐渐向上扩展,并且对用户可用.所以我基本上需要传递单元格的原点并使用一些数学来计算基于按钮的原点和宽度(相当直接)的按钮比例. if (CGRectIntersectsRect(button.frame,self.movingCell.frame)) { CGFloat xScale = cellTranslation - xOriginForButton; [self popOutAnimate:button withScale:xScale/ (xWidthForButtons + xSpaceBetweenButtons)]; } 但是当我快速移动单元格时,问题出现了,视图没有得到单元格运动的所有变化,并且它们处于半动画状态. 我有一种感觉,我没有把握正确的逻辑.整个实现类似于Sparrow iphone邮件应用程序.当您平移单元格时,按钮会在移动单元格时显示动画.对于那些没有使用过麻雀的人.你可以在1:25 https://www.youtube.com/watch?v=XLX6XV0SbWI&t=1m25s看到平移手势 逻辑是否正确?我错过了什么吗? 任何帮助深表感谢. 解决方法
在使用几种不同的方法进行此操作后,我最终得到了一个解决方案,我在下面键入它.
算法: 滑动或平移tableViewCell的原理很简单. 让我们看一下这个问题的最佳解决方案. >使用(CGRectIntersects(rect1,rect2)执行hit_test以找出单元格与任何单元格相遇的位置 工作: 因此,如果我们要为单元格下方的所有按钮设置动画,那么您将拥有 基于动画区域的位置(如IB中设置的)计算该区域的这些值.我们再次分裂 | Region of Static Buttons | Region of Animation | --------------------------------------------------------- | Static Button | Static Button | 1 | 2 | 3 | 4 | 5| --------------------------------------------------------- | | ===> CELL MOVES ====> | --------------------------------------------------------- 这种方法的优点: >性能优于hit_test(非常需要休息) DIS-优势: >静态按钮区域和动画区域必须事先为两个方向计算.>如果按钮是互换后,需要更新算法以反映新的变化. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |