objective-c – 改变核心动画代理持续时间的两种方法 – 一种不起作用……为什么?

objective-c – 改变核心动画代理持续时间的两种方法 – 一种不起作用……为什么?,第1张

概述我正在编写代码,以便在窗口中移动NSTextView.我希望用户可以设置持续时间. 这个版本工作正常: // code to setup TextView[centerView addSubview:targetTextView];[NSAnimationContext beginGrouping];float finalDuration = expf((11-duration)/5) 我正在编写代码,以便在窗口中移动NSTextVIEw.我希望用户可以设置持续时间.

这个版本工作正常:

// code to setup TextVIEw[centerVIEw addSubvIEw:targetTextVIEw];[NSAnimationContext beginGrouPing];float finalDuration = expf((11-duration)/5) + 2;[[NSAnimationContext currentContext] setDuration:(finalDuration)];[[targetTextVIEw animator]setFrame:NSMakeRect(-170,(centerVIEwRect.size.height * 1/2) - 40,160,80)];[NSAnimationContext endGrouPing];

这个将时间保留为默认值:

// code to setup TextVIEw[centerVIEw addSubvIEw:targetTextVIEw];CABasicAnimation *posAnim = [CABasicAnimation animationWithKeyPath:@"frame"];[posAnim setFromValue:[NSValue valueWithRect:NSMakeRect(centerVIEwRect.size.wIDth - 170,(centerVIEwRect.size.height * 2/3) - 40,80)]];[posAnim setTovalue:[NSValue valueWithRect:NSMakeRect(10,80)]];float finalDuration = expf((11-duration)/5) + 2;[posAnim setDuration:finalDuration];[targetTextVIEw setAnimations:[NSDictionary dictionaryWithObjectsAndKeys:posAnim,@"frame",nil]];[[targetTextVIEw animator]setFrame:NSMakeRect(-170,80)];

任何人都可以告诉我为什么第一个工作,第二个不工作?他们似乎与我相当.

谢谢!

解决方法 对于您想要使用的CABasicAnimation [CATransaction setAnimationDuration:yourDuration]; 总结

以上是内存溢出为你收集整理的objective-c – 改变核心动画代理持续时间的两种方法 – 一种不起作用……为什么?全部内容,希望文章能够帮你解决objective-c – 改变核心动画代理持续时间的两种方法 – 一种不起作用……为什么?所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/999075.html

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

发表评论

登录后才能评论

评论列表(0条)

保存