我试图通过以下方式更改按钮的角半径(OpenNoteVisible.layer):
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"cornerRadius"]; animation.timingFunction = [camediatimingFunction functionWithName:kcamediatimingFunctionLinear]; animation.fromValue = [NSNumber numberWithFloat:10.0f]; animation.tovalue = [NSNumber numberWithFloat:0.0f]; animation.duration = 1.0; [animation.layer setCornerRadius:140.0]; [OpenNoteVisible.layer addAnimation:animation forKey:@"cornerRadius"];
但是这段代码在[animation.layer setCornerRadius:140.0]行中给出了一个错误;
我不明白为什么.我已经导入了Quartz核心框架.
解决方法
您正在动画对象的图层属性上设置角半径;此动画对象没有图层属性.
您需要在您正在设置动画的图层上设置角半径,在本例中为OpenNoteVisible.您还需要确保动画对象的tovalue与您在图层上设置的值匹配,否则您将获得奇怪的动画.
您的代码现在应该是:
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"cornerRadius"]; animation.timingFunction = [camediatimingFunction functionWithName:kcamediatimingFunctionLinear]; animation.fromValue = [NSNumber numberWithFloat:10.0f]; animation.tovalue = [NSNumber numberWithFloat:140.0f]; animation.duration = 1.0; [OpenNoteVisible.layer setCornerRadius:140.0]; [OpenNoteVisible.layer addAnimation:animation forKey:@"cornerRadius"];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。