1、CGAffineTransformMakeTranslation
[UIView animateWithDuration:0.3 animations:^{
// _machinistBtn.transform = CGAffineTransformMakeTranslation(-ScreenViewW, self.transform.ty);
// _otherBtn.transform = CGAffineTransformMakeTranslation(-ScreenViewW, self.transform.ty);
// _bgView.transform = CGAffineTransformMakeTranslation(-ScreenViewW, self.transform.ty);
_btn.transform = CGAffineTransformMakeTranslation(-50, 0);
} completion:nil];
CGAffineTransformMakeTranslation(<#CGFloat tx#>, <#CGFloat ty#>)
UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(50, 0, 50, 50)];
這里主要看btn
的frame
的位置是(50,0),它的center
是(75,0)
執(zhí)行
[UIView animateWithDuration:0.3 animations:^{
btn.transform = CGAffineTransformMakeTranslation(-50, 0);
} completion:nil];
注意: (-50,0)
钞楼,它是一個(gè)向量谅辣,換句話(huà)說(shuō)懦窘,在調(diào)用CGAffineTransformMakeTranslation(x前翎,y)
的時(shí)候,已經(jīng)把(75,0)
作為(絕對(duì))原點(diǎn)畅涂,那么移動(dòng)后終點(diǎn)應(yīng)該是(25港华,0)
,這時(shí)候btn
的frame
為(25,0,50,50)
2、少一個(gè) Make
午衰,CGAffineTransformMakeTranslation(x,y)
變成CGAffineTransformTranslation(trans,x,y)
,多了一個(gè)參數(shù)其實(shí)都一樣立宜,為什么這么說(shuō),CGAffineTransformTranslation(trans,x,y)
中的trans
是給這個(gè)方法指定了一個(gè)相對(duì)原點(diǎn),比如這樣調(diào)用
UIButton *tmpBtn2 = [[UIButton alloc] initWithFrame:CGRectMake(0, 200, 120, 40)];
tmpBtn2.transform = CGAffineTransformTranslation(CGAffineTransformMakeTranslation(160, 0),20,0)苇经,
tmpBtn2先移動(dòng)向量(160赘理,0)宦言,在移動(dòng)(20扇单,0)。
所以CGAffineTransformTranslation(CGAffineTransformMakeTranslation(160, 0),20,0) == CGAffineTransformMakeTranslation(180, 0) 是ture的奠旺。
同理可以的出來(lái)CGAffineTransformMakeScale和CGAffineTransformScale蜘澜、還有CGAffineTransformMakeRotation和CGAffineTransformRotation是一樣的道理。
UIButton *tmpBtn3 = [[UIButton alloc] initWithFrame:CGRectMake(0, 200, 120, 40)];
tmpBtn3.transform = CGAffineTransformMakeScale(2响疚,2)鄙信; 大小變成 240*80
UIButton *tmpBtn4 = [[UIButton alloc] initWithFrame:CGRectMake(0, 200, 120, 40)];
tmpBtn4.transform = CGAffineTransformScale(CGAffineTransformMakeScale(2,2)忿晕,2装诡,2);
tmpBtn4認(rèn)為(2践盼,2)的frame大醒徊伞(即240*80),是放大倍數(shù)的標(biāo)準(zhǔn)咕幻,所以就會(huì)放大4倍渔伯。
3、CGAffineTransformIdentity
CGAffineTransformIdentity
:清空所有的設(shè)置的transform
(一般和動(dòng)畫(huà)配合使用肄程,只能使用于transform
設(shè)置的畫(huà)面)