Facebook pop kPOPLayerCornerRadius无效

时间:2015-03-17 10:33:29

标签: ios objective-c uiviewanimation facebook-pop

我在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一起使用。

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

应该是:

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