【问题标题】:Animation of UIImage initiated by button按钮启动的 UIImage 动画
【发布时间】:2014-05-06 03:56:56
【问题描述】:

我希望在屏幕上设置一个 50x50 的 UIImage 动画,就像触摸一个按钮时的心电图信号一样。

我正在使用一个测试项目,并且无需按钮即可运行:

@interface IPhoneViewController ()

@end

@implementation IPhoneViewController

- (void)viewDidLoad

{
    [super viewDidLoad];

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];

}


 -(void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];

    [UIView animateWithDuration:1.0F animations:^{
    CGPoint oldPosition = self.dot.layer.position;
    CGPoint newPosition = CGPointMake(oldPosition.x + 170, oldPosition.y);
    self.dot.layer.position = newPosition;


    }];

 }



@end

当我在此代码上方添加行- (IBAction)onButtonPressed:(id)sender; { 时,会在-(void)viewDidAppear:(BOOL)animated { 行创建一个错误,指出“使用未声明的标识符'viewDidAppear'”。

首先,如何使用按钮启动动画,其次,我想像 ECG 机器那样以上下运动改变动画的方向,但是如果我在第一个之后添加另一组方向,只执行最后的指令。

 -(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];

[UIView animateWithDuration:1.0F animations:^{
    CGPoint oldPosition = self.dot.layer.position;
    CGPoint newPosition = CGPointMake(oldPosition.x + 170, oldPosition.y);
    self.dot.layer.position = newPosition;


}];
 [UIView animateWithDuration:1.0F animations:^{
     CGPoint oldPosition = self.dot.layer.position;
     CGPoint newPosition = CGPointMake(oldPosition.x + 10, oldPosition.y - 100);
     self.dot.layer.position = newPosition;


 }];

}

感谢您的帮助。

【问题讨论】:

    标签: ios objective-c animation uibutton uiimage


    【解决方案1】:

    这是您的解决方案:

    - (IBAction)onButtonPressed:(id)sender{
    [UIView animateWithDuration:1.0F animations:^{
        CGPoint oldPosition = self.dot.layer.position;
        CGPoint newPosition = CGPointMake(oldPosition.x + 170, oldPosition.y);
        self.dot.layer.position = newPosition;
    
    
    }completion:^(BOOL finished){
    [UIView animateWithDuration:1.0F animations:^{
        CGPoint oldPosition = self.dot.layer.position;
        CGPoint newPosition = CGPointMake(oldPosition.x + 10, oldPosition.y - 100);
        self.dot.layer.position = newPosition;
    
    
    }];
    }];
    
    
    }
    

    这应该可行,并且您的动画应该一个接一个。

    【讨论】:

    • 感谢您的回复。该按钮工作正常,但我在 }completion:^{ 收到一条错误消息
    • 感谢您的回复。该按钮工作正常,但我在}completion:^{ 收到一条错误消息,指示 ^ 说明“不兼容的块指针类型将 'void'(^)(void) 发送到 'void (^)(bool)' 类型的参数。感谢任何帮助。
    • 很抱歉,这是我的代码中的错误。我已经编辑了它,现在它应该可以工作了。让我知道是否有。 :D
    • 谢谢。这完美无缺。我已将它集成到我的应用程序中,我对结果非常满意。我真的很感激。祝你在项目中一切顺利。
    • 如果它回答了您的问题,请接受并投票,谢谢。乐于助人!
    猜你喜欢
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    相关资源
    最近更新 更多