使用核心动画查看缩小(不淡出)

时间:2014-03-04 14:01:16

标签: ios core-animation

我已经将UIButton子类化,使按钮形状显示为甜甜圈(中间有透明孔的圆圈)

drawRect是:

- (void)drawRect:(CGRect)rect
{
    [super drawRect:rect];
    if(context==nil)
    context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
    CGContextSetStrokeColorWithColor(context, [UIColor colorWithRed:0 green:1.0 blue:0 alpha:0.5].CGColor);
    CGMutablePathRef path = CGPathCreateMutable();
     CGContextSetLineWidth(context, self.frame.size.width/2 - innerRadius);

    CGPathAddArc(path, NULL, self.frame.size.width/2.0, self.frame.size.height/2.0, (innerRadius+((self.frame.size.width/2 - innerRadius)/2.0)), 0 * 3.142/180, 2.1 *3.14, 0);

    CGContextAddPath(context, path);
    CGContextStrokePath(context);
    CGPathRelease(path);
}

当点击按钮时,我希望内孔逐渐收缩,最后消失,留下整个圆圈。

innerRadius控制内孔的大小,所以我使用以下函数来尝试实现我想要的东西:

- (void) animateButton
{
       innerRadius = 0;

    [UIView transitionWithView:self duration:0.5
                       options:UIViewAnimationOptionTransitionCrossDissolve
                    animations:^{
                        [self.layer displayIfNeeded];
                    } completion:nil];
}

这可行,但不是我想要的。这个洞在0.5秒内消失。我希望它逐渐缩小然后消失。如何使用核心动画实现这一目标?

0 个答案:

没有答案