Facebook pop kPOPLayerCornerRadius 不工作

Facebook pop kPOPLayerCornerRadius is not working

我在 IBaction (UIButton) 中有情节提要和弹出动画代码的出口:

@property (strong, nonatomic) IBOutlet UIView *animationView;
...
...
POPBasicAnimation *animationCircle = [POPBasicAnimation animationWithPropertyNamed:kPOPLayerCornerRadius];
animationCircle.toValue = @(self.animationView.layer.cornerRadius/2);
animationCircle.name = @"animacijaCircle";
animationCircle.delegate = self;
[self.animationView pop_addAnimation:animationCircle forKey:@"animacijaCircle"];

我的动画不工作,我不知道为什么...

我的调试区有这个:

2015-03-17 11:28:00.321 customControll[5759:325909] -[UIView cornerRadius]: unrecognized selector sent to instance 0x7fc79ac720c0

并且我的异常断点 os 停止在 pop 框架的这一部分:

{kPOPLayerCornerRadius,
^(CALayer *obj, CGFloat values[]) {
  values[0] = [obj cornerRadius];// exception breakpoint is on this line here
},
^(CALayer *obj, const CGFloat values[]) {
  [obj setCornerRadius:values[0]];
},
kPOPThresholdRadius}

你也可以给我一个我可以使用的带有 pop 的 cornerRadius 动画的例子,我只想让它与 Facebook pop 一起工作。

谢谢!

kPOPLayerCornerRadius 是层 属性 而不是视图 属性 因此您需要将动画添加到层而不是视图。所以这一行:

[self.animationView pop_addAnimation:animationCircle forKey:@"animacijaCircle"];

应该是:

[self.animationView.layer pop_addAnimation:animationCircle forKey:@"animacijaCircle"];