第二部动画

时间:2013-10-23 12:11:17

标签: ios animation scale

我有几个按钮位于视图中的不同站点(故事板),当我点击每个按钮去指定点时,我想要这样做,

为此,我通过以下方式保留其位置和初始大小:

CGPoint originalCenter1;
CGRect originalsize1;

CGPoint originalCenter2;
CGRect originalsize2;

在viewDidLoad

originalCenter1 = self.boton1.center;
originalsize1 = self.boton1.frame;

originalCenter2 = self.boton2.center;
originalsize2 = self.boton2.frame;

和每个按钮相关的IBAction,动画......

-(IBAction)move:(id)sender{

UIButton * pressedbutton = (UIButton*)sender;

[UIView animateWithDuration:3.0 delay:0.0 options:UIViewAnimationOptionCurveLinear animations:^{

    CGAffineTransform scale = CGAffineTransformMakeScale(3.0, 3.0);
    pressedbutton.transform = scale;
    switch(pressedbutton.tag)
    {
        case 0:     
            pressedbutton.center = CGPointMake(784, 340);

            break;
        case 1:
            pressedbutton.center = CGPointMake(784, 340);

            break;

当已经全部移动时,我有一个按钮刷新,让我到达初始位置。

-(IBAction)refresh:(id)sender{

self.boton1.frame = originalsize1;
self.boton1.center = originalCenter1;
self.boton1.alpha=1;

self.boton2.frame = originalsize2;
self.boton2.center = originalCenter2;
self.boton2.alpha=1;

问题是下次那个脉冲按钮,移动到动画中显示的位置但是“缩放”效果不起作用!!

任何帮助??

感谢。

1 个答案:

答案 0 :(得分:0)

我认为你应该使用阻止尝试这个......

- (IBAction)tap:(UITapGestureRecognizer *)gesture
{
    CGPoint tapLocation = [gesture locationInView:self.view1];
    for (UIView *view in self.view1.subviews) {
        if (CGRectContainsPoint(view.frame, tapLocation)) {
            [UIView animateWithDuration:5.0 animations:^{
                [self setRandomLocationForView:view];
            }];
        }
    }
}


- (void)setRandomLocationForView:(UIView *)view
{
    [view sizeToFit];
    CGRect sinkBounds = CGRectInset(self.view1.bounds, view.frame.size.width/2, view.frame.size.height/2);
    CGFloat x = your location.x;
    CGFloat y = yout location.y;
    view.center = CGPointMake(x, y);
}