動畫一: 控件直線移動效果
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. 通過觸摸方法, 觸發(fā)動畫的執(zhí)行事件
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
//1. 創(chuàng)建一個動畫
[UIView beginAnimations:nil context:nil];
//2. 動畫延遲設(shè)置
[UIView setAnimationDelay:1];
//3. 給動畫添加代理(不遵循代理協(xié)議, 也能實現(xiàn)代理方法)
[UIView setAnimationDelegate:self];
//4. 給動畫添加方法(動畫結(jié)束后執(zhí)行)
[UIView setAnimationDidStopSelector:@selector(stopAc)];
//5. 動畫持續(xù)時間(完成動畫所需時間)
[UIView setAnimationDuration:2];
//6. 設(shè)置動畫是否會重復播放
[UIView setAnimationRepeatAutoreverses:NO];
//7. 設(shè)置動畫移動的新位置
self.label.frame = CGRectMake(100, 100, 100, 100);
//8. 開始動畫
[UIView commitAnimations];
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者