控件设置



@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);




猜你喜欢

转载自blog.csdn.net/wu745187355/article/details/45724845