NSView 中的 NSBezierPath 点动画
我在 Cocoa 中构建了一个自定义控件,它是使用 NSBezierPath 绘制的,我希望它在状态更改时改变形状(未使用的状态 = 指向“看这里”的边缘,使用的状态 = 标准控制边缘)。
感觉就像我已经浏览了网络上所有提到的“NSBezierPath”和“动画”,但没有运气。
在我破解一些 NSTimers 并编写我自己的计时&之前路径点控件,有谁知道这是否可以使用核心动画或类似的?
I've built a custom control in Cocoa which is drawn using an NSBezierPath and I'd like it to change shape when it's state has changed (unused state = a pointed 'look here' edge, used state = standard control edge).
It feels like I've looked through every mention of "NSBezierPath" and "Animation" there is on the web but with no luck.
Before I crack out some NSTimers and write my own timing & path point controls, does anyone know if this is possible using Core Animation or similar?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用 NSAnimation。创建您自己的 NSAnimation 子类,并重写 setCurrentProgress 方法。
在该方法中,您可以根据当前的动画进度更改 NSBezierPath 的大小、形状或任何您需要的内容。之后,您可以在视图中强制重绘(例如通过委托)以重新显示路径。
You could use NSAnimation. Create your own NSAnimation subclass, and override setCurrentProgress method.
In that method, you can change your NSBezierPath size, shape or whatever you need, based on current animation progress. After that you can force a redraw in the view (via delegate, for instance) to re-display the path.