探究transform与center
测试1 记录下控件的初始center,修改他的center,然后再重设他的center,把他恢复为初始位置
结果:成功
过程: 一个控件一开始的frame是(0,0,20,20),他的中心点就是(10,10)
设置他的center为100,100;
于是他会往右走90,往下走90,frame是(90,90,20,20),他的中心点是(100,100)
再次设置他的center为10,10,他会回到起点
【探究transform与center】测试2 记录下控件的初始center,修改他的transform,然后再重设他的center,把他恢复为初始位置
结果:修改transform并不能改变他的中心点,要想重新回到初始位置只能通过设置transform为Identity,或者把他的中心点减去移动的transform的值
过程:一个控件的一开始的frame是(0,0,20,20),他的中心点就是(10,10)
设置他的transform:CGAffineTransformMakeTranslation(100, 500);
于是他会往右走100,往下走500,frame是(100,500,20,20),他的中心点是(10,10)
发现中心点没有改变,所以接下来继续重设他的中心点为最初的center没有用
测试3 记录下控件的初始center,修改他的center,然后再重设他的transform,把他恢复为初始位置
结果:无法修改transform。
结论:center是指控件在父视图上的位置,可是修改了控件的transform后,就并不能很好地修改center来改变控件的位置了。 因为transform改变了控件的真实位置,但是并没有改变控件的center。 直接修改center的话或者frame,会在当前位置进行移动。 最好是先恢复transform为identity
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 第326天
- Shell-Bash变量与运算符
- 逻辑回归的理解与python示例
- Guava|Guava RateLimiter与限流算法
- 我和你之前距离
- CGI,FastCGI,PHP-CGI与PHP-FPM
- 原生家庭之痛与超越