关于frame/bounds/center/transform详解

本文详细介绍了UIKit中坐标系统的原点及其延伸方向,并深入解析了frame、bounds、center及transform等关键属性的作用与使用方法。

在UIKit中,坐标系的原点(0,0)在左上角,x值向右正向延伸,y值向下正向延伸

@property(nonatomic) CGRect frame;

说明:1.控件所在矩形框在父控件中的位置和尺寸(以父控件的左上角为坐标原点)
2.当修改一个控件的frame属性值时,不能直接修改frame内部的成员,需要将其赋值给一个临时变量,修改临时变量的值,再将临时变量赋值给该控件

@property(nonatomic) CGRect bounds;

控件所在矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x\y一般为0)

@property(nonatomic) CGPoint center;

控件中点的位置(以父控件的左上角为坐标原点)

@property(nonatomic) CGAffineTransform transform;

控件的形变属性(可以设置旋转角度、比例缩放、平移等属性)

说明:1.transform是一种状态,每次只有一种状态
2.关于transform的几种方法说明
(1)CGAffineTransformMakeTranslation(CGFloat tx, CGFloat ty):只能变化一次,因为这种方式的变化始终是以最原始的状态值进行变化的,所以只能变化一次
(2)CGAffineTransformTranslate(CGAffineTransform t, CGFloat tx, CGFloat ty):能够多次变化,每次变化都是以上一次的状态(CGAffineTransform t)进行的变化,所以可以多次变化
(3) CGAffineTransformIdentity:清空所有的设置的transform(一般和动画配合使用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值