我只是从一个愚蠢的循环中重写了一个很大的动画(触发drawRect:x次),这是我无法弄清楚的最后一件事.
如何获取动画的当前已用时间?我知道如何获取当前的CFTimeInterval(有没有办法暂停CABasicAnimation?):
CFTimeInterval currentTime = [self.multiplierLayer convertTime:CACurrentMediaTime() fromLayer:nil];
Run Code Online (Sandbox Code Playgroud)
但是,我如何使用它来计算从动画开始的那一刻起的当前经过时间?似乎beginTime总是0.0,我必须设置动画开始的那一刻,然后从beginTime中提取currentTime吗?
我很抱歉,如果它是一个简单的我忽略了,我昨天才开始使用Core Animation.:)
编辑: 设置beginTime 不是这样做的方式,真的在这里不知所措.
对不起,我不知道一个更好的头衔.
问题:
我有一个UITableViewCell自动布局,笔尖的默认高度是300. 300是我的一个正确的大小UIViewControllers.
我在UINavigationController容器视图中使用了一个容器视图,在容器视图下面是一个UIView被调用的FooterView.
在容器视图中有两个UIViewControllers; VC1和VC2.
当我推VC2到VC1,我也改变FooterView的高度与它的NSLayoutConstraint高度不变.
我正在动画块里面这样做 [self.view setNeedsLayout];
我将UITableViewCell内部的高度设置VC2为200.
现在的问题是,当我转换VC1到VC2你时,你也会看到UITableViewCell动画从300到200.
我的猜测是,这是因为动画块.我通过删除动画来测试它,并且单元格没有动画(如预期的那样).
有没有办法阻止这个动画链接?
如果我不够清楚,我很抱歉.