測試1 記錄下控件的初始center类少,修改他的center,然后再重設(shè)他的center顿天,把他恢復(fù)為初始位置
結(jié)果:成功
過程: 一個(gè)控件一開始的frame是(0,0,20,20),他的中心點(diǎn)就是(10,10)
設(shè)置他的center為100,100坡垫;
于是他會(huì)往右走90,往下走90,frame是(90,90,20,20),他的中心點(diǎn)是(100,100)
再次設(shè)置他的center為10画侣,10冰悠,他會(huì)回到起點(diǎn)
測試2 記錄下控件的初始center,修改他的transform配乱,然后再重設(shè)他的center溉卓,把他恢復(fù)為初始位置
結(jié)果:修改transform并不能改變他的中心點(diǎn),要想重新回到初始位置只能通過設(shè)置transform為Identity宪卿,或者把他的中心點(diǎn)減去移動(dòng)的transform的值
過程:一個(gè)控件的一開始的frame是(0,0,20,20)的诵,他的中心點(diǎn)就是(10,10)
設(shè)置他的transform:CGAffineTransformMakeTranslation(100, 500);
于是他會(huì)往右走100,往下走500佑钾,frame是(100,500,20,20),他的中心點(diǎn)是(10,10)
發(fā)現(xiàn)中心點(diǎn)沒有改變西疤,所以接下來繼續(xù)重設(shè)他的中心點(diǎn)為最初的center沒有用
測試3 記錄下控件的初始center,修改他的center休溶,然后再重設(shè)他的transform代赁,把他恢復(fù)為初始位置
結(jié)果:無法修改transform扰她。
結(jié)論:center是指控件在父視圖上的位置,可是修改了控件的transform后芭碍,就并不能很好地修改center來改變控件的位置了徒役。 因?yàn)閠ransform改變了控件的真實(shí)位置,但是并沒有改變控件的center窖壕。 直接修改center的話或者frame忧勿,會(huì)在當(dāng)前位置進(jìn)行移動(dòng)。 最好是先恢復(fù)transform為identity