iOS 移动动画简单实现详解手机开发

[UIView animateWithDuration:0.5 animations:^{ 
            for (i = num; i > _indexOfArray+1; i--) { 
                ((UIDragButton *)[_buttonArray objectAtIndex:i]).frame = ((UIDragButton *)[_buttonArray objectAtIndex:i-1]).frame; 
            } 
            ((UIDragButton *)[_buttonArray objectAtIndex:i]).frame = _frameRect; 
        }];

在block中只需要直接赋值即可实现效果。

iOS 移动动画简单实现详解手机开发

若使用CABasicAnimation则较为复杂

定义动画

- (CABasicAnimation *)moveX:(float)time X:(NSNumber *)x  // 横向移动 
{ 
    CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"transform.translation.x"]; 
    animation.toValue=x; 
    animation.duration=time;                    // 动画持续时间 
    animation.removedOnCompletion=NO; 
    animation.fillMode=kCAFillModeForwards; 
    animation.delegate = self; 
    return animation; 
}

使用动画

[self.layer addAnimation:[self moveX:0.1 X:[NSNumber numberWithFloat:x]] forKey:nil];

委托需要协议<NSObject>

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/3309.html

(0)
上一篇 2021年7月16日 14:28
下一篇 2021年7月16日 14:28

相关推荐

发表回复

登录后才能评论

WordPress 数据库错误: [Duplicate entry '80-d16c1647a53da3ad6bbb3d1108156ba7' for key 'task_id_source_url_key']
insert into wp_autoblog_queue(task_id,source_url,source_url_key,create_date_time,not_check_stoped,post_interval) values(80,'https://pythonjishu.com/robotic-process-automation/','d16c1647a53da3ad6bbb3d1108156ba7',1735322203,0,0)