我使用此代码枚举一个数组,它崩溃了。我认为这是因为我错误地包裹了颜色,但我应该如何传递它们?
CAKeyframeAnimation *iAnimation = [CAKeyframeAnimation animationWithKeyPath:@"backgroundColor"];
NSArray *iTimes;
NSArray *iValues;
NSInteger iTag = iButton.tag;
iTimes = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:(iTimeBlock * iTag)],
[NSNumber numberWithFloat:(iTimeBlock * iTag + 1)],
[NSNumber numberWithFloat:iTimeBlock * (iTag + 2)], nil];
iValues = [NSArray arrayWithObjects:
iButton.backgroundColor,
iButton.color, // my subclass has this property
iButton.backgroundColor, nil];
[iAnimation setKeyTimes:iTimes];
[iAnimation setValues:iValues];
[iAnimation setDuration:21.0];
[iButton.layer addAnimation:iAnimation
forKey:@"FlashColor"];
答案 0 :(得分:1)
iValues = [NSArray arrayWithObjects:
(id)iButton.backgroundColor.CGColor,
(id)iButton.color.CGColor,
(id)iButton.backgroundColor.CGColor,
nil];
答案 1 :(得分:0)
要获得UIButton的颜色,您可以这样做:
[iButton backgroundColor];
你可能不需要这些东西:[NSValue valueWithBytes:iButton.backgroundColor objCType:@encode(的UIColor)]