动画一: 控件直线移动效果
1. 声明一个label属性
@property (strong, nonatomic) UILabel *label;
2. 初始化label
self.label = [[UILabel alloc] init];
self.label.bounds = CGRectMake(0, 0, 100, 100);
#锚点(默认位置为(0.5, 0.5), 即控件的中心点, 相对于自身来说), 控件锚点的 位置, 与父视图的(0, 0)点重合
//锚点的最大取值为: 1
self.label.layer.anchorPoint = CGPointMake(0, 0);
self.label.backgroundColor = [UIColor redColor];
[self.view addSubview:self.label];
#3. 通过触摸方法, 触发动画的执行事件
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
//1. 创建一个动画
[UIView beginAnimations:nil context:nil];
//2. 动画延迟设置
[UIView setAnimationDelay:1];
//3. 给动画添加代理(不遵循代理协议, 也能实现代理方法)
[UIView setAnimationDelegate:self];
//4. 给动画添加方法(动画结束后执行)
[UIView setAnimationDidStopSelector:@selector(stopAc)];
//5. 动画持续时间(完成动画所需时间)
[UIView setAnimationDuration:2];
//6. 设置动画是否会重复播放
[UIView setAnimationRepeatAutoreverses:NO];
//7. 设置动画移动的新位置
self.label.frame = CGRectMake(100, 100, 100, 100);
//8. 开始动画
[UIView commitAnimations];
}