@interface UIView(UIViewGeometry)
// animatable. do not use frame if view is transformed since it will not correctly reflect the actual location of the view. use bounds + center instead.
@property(nonatomic) CGRect frame; //<span style="color: rgb(89, 89, 89);">frame</span><span style="color: rgb(89, 89, 89);">.</span><span style="color: rgb(89, 89, 89);">origin 控件位置 <span style="color: rgb(89, 89, 89);">frame.size 控件大小</span></span>
// use bounds/center and not frame if non-identity transform. if bounds dimension is odd, center may be have fractional part
@property(nonatomic) CGRect bounds; // default bounds is zero origin, frame size. animatable
@property(nonatomic) CGPoint center; // center is center of frame. animatable
@property(nonatomic) CGAffineTransform transform; // default is CGAffineTransformIdentity. animatable
一.修改控件的位置和尺寸 ------------ bounds center
frame属性 ,通常用于实例化控件,指定初始位置和大小。
1.位置
frame
.
origin
center
------建议使用
2.尺寸
frame.size
bounds.size
------建议使用
二.控件的位移和形变 -----------transform
使用transform对控件进行 移动 缩放 旋转
struct CGAffineTransform {
CGFloat a, b, c, d;
CGFloat tx, ty;
};
//移动
//tx 水平移动 ty 上下移动
//原型:
CGAffineTransform CGAffineTransformMakeTranslation(CGFloat tx,CGFloat ty);
CGAffineTransform CGAffineTransformTranslate(CGAffineTransform t,CGFloat tx, CGFloat ty);
//使用:
self.button.transform = CGAffineTransformMakeTranslation(100,100); //移动的参考点是初始位置 向下移动100 向右移动100
self.button.transform = CGAffineTransformTranslate(self.button.transform,100,100); //相对当前位置 向下移动100 向右移动100
//
//缩放
//a - sx 水平缩放 倍数 d - sy 垂直缩放 倍数
//原型:
CGAffineTransform CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)
CGAffineTransform CGAffineTransformScale(CGAffineTransform t,CGFloat sx, CGFloat sy)
//使用:
self.button.transform = CGAffineTransformMakeScale(1.2,1.2);
self.button.transform = CGAffineTransformScale(self.button.transform,0.8,0.8);
//旋转
// a, b, c, d; 都会改变 180° = M_PI 90°= M_PI_2 45°= M_PI_4
//原型:
CGAffineTransform CGAffineTransformMakeRotation(CGFloat angle);
CGAffineTransform CGAffineTransformRotate(CGAffineTransform t,CGFloat angle);
//使用:
self.button.transform = CGAffineTransformMakeRotation(M_PI_4);
self.button.transform = CGAffineTransformRotation(self.button.transform,M_PI_4);