我正在学习caanimations,我遇到了一个问题。 我想显示一个高度从1开始到100的矩形。我希望这个矩形保持在视图的中间并且只是扩展它的高度。
这是我到目前为止所做的代码:
CAShapeLayer *rect = [CAShapeLayer layer];
CGRect frame = CGRectMake(0, 0,destView.frame.size.width, 1);
rect.frame = frame;
rect.path = [UIBezierPath bezierPathWithRect:frame].CGPath;
//DestView is the view that will receive this layer
rect.position = destView.center;
//For debug purpose
rect.fillColor = [UIColor blackColor].CGColor;
rect.strokeColor = [UIColor redColor].CGColor;
rect.anchorPoint = CGPointMake(0.5, 0.5);
CABasicAnimation *test = [CABasicAnimation animationWithKeyPath:@"bounds.size.height"];
[test setFromValue:[NSNumber numberWithFloat:1.0f]];
[test setToValue:[NSNumber numberWithFloat:100.0f]];
test.duration = 5.0f;
[test setFillMode:kCAFillModeForwards];
[rect addAnimation:test forKey:@"rectGrowing"];
[destView.layer addSublayer:rect];
我得到的结果是从底部到中间的红线(1个高度和红色笔划的矩形)......高度不会增加。
答案 0 :(得分:1)
从您的代码中,高度应该增加。 但是,您应该使用backgroundColor而不是fillColor。
这是因为虽然高度发生了变化,但路径却没有。