UI基础--UIView常见属性之frame、center、bounds、transframe属性
2014-12-11 21:13
411 查看
屏幕上能看得见摸得着的东西就是UIView,比如屏幕上的按钮、文字、图片,所以UIButton、UILabel、UITextField等等控件都是继承自UIView的,所以都会具有UIView的属性和方法,这里主要学习的是frame、center、bounds、transframe属性。
对一个控件进行移动、放大、缩小或者旋转就可以用以上的4种属性,看注释也可以知道,transform的作用更大,所以要学好transform。有以下创建方法CGAffineTransformMakeTranslation(平移)、CGAffineTransformMakeScale(缩 放)、CGAffineTransformMakeRotation(旋转)都是相对于控件初始位置的而发生的形变(平移、缩放、旋转);而 CGAffineTransformTranslate(平移)、CGAffineTransformScale(缩放)、 CGAffineTransformRotate(旋转)都是相对于基于CGAffineTransform t参数而发生的形变(平移、缩放、旋转)。这里的radians,弧度,都是180° = M_PI。
当然了,这些形变最好还是配上动画才好看。
//控件所在矩形框在父控件中的位置和尺寸(以父控件的左上角为坐标原点) @property(nonatomic) CGRect frame; //控件所在矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x、y一般为0) @property(nonatomic) CGRect bounds; //控件中点的位置(以父控件的左上角为坐标原点) @property(nonatomic) CGPoint center; //可以对控件进行平移、缩放比例和旋转角度 @property(nonatomic) CGAffineTransform transform;
对一个控件进行移动、放大、缩小或者旋转就可以用以上的4种属性,看注释也可以知道,transform的作用更大,所以要学好transform。有以下创建方法CGAffineTransformMakeTranslation(平移)、CGAffineTransformMakeScale(缩 放)、CGAffineTransformMakeRotation(旋转)都是相对于控件初始位置的而发生的形变(平移、缩放、旋转);而 CGAffineTransformTranslate(平移)、CGAffineTransformScale(缩放)、 CGAffineTransformRotate(旋转)都是相对于基于CGAffineTransform t参数而发生的形变(平移、缩放、旋转)。这里的radians,弧度,都是180° = M_PI。
#pragma mark 旋转 //注意旋转角度必须是弧度,不是角度 CGFloat angle = M_PI_4; //使用CGAffineTransformMakeRotation获得一个旋转角度形变 //但是需要注意CGAffineTransformMakeRotation的旋转不会自动在原来的角度上进行叠加,所以下面的方法旋转一次以后再点击按钮不会旋转了(下面的移动和缩放也是类似) _imageView.transform=CGAffineTransformMakeRotation(angle); //而CGAffineTransformRotate说可以在原来的基础上产生一个新的角度 _imageView.transform = CGAffineTransformRotate(_imageView.transform, angle); #pragma mark 缩放 CGFloat scalleOffset=0.9; _imageView.transform=CGAffineTransformMakeScale(scalleOffset, scalleOffset); _imageView.transform= CGAffineTransformScale(_imageView.transform, scalleOffset, scalleOffset); #pragma mark 移动 CGFloat translateY = 30; _imageView.transform=CGAffineTransformMakeTranslation(0, translateY); _imageView.transform = CGAffineTransformTranslate(_imageView.transform, 0, translateY);
当然了,这些形变最好还是配上动画才好看。
[UIView animateWithDuration:1.0 animations: ^{ _imageView.transform = CGAffineTransformTranslate(_imageView.transform, 0, translateY); }];//UIView的类方法
相关文章推荐
- iOS开发之UI基础--纯代码控件.frame,center,bounds属性
- iOS开发UI基础—手写控件,frame,center和bounds属性
- iOS部分-UI基础控件 - 01天 入门 第10课 frame&bounds¢er属性
- iOS开发UI基础—手写控件,frame,center和bounds属性
- iOS开发UI基础—手写控件,frame,center和bounds属性
- iOS开发UI基础—手写控件,frame,center和bounds属性
- iOS开发UI基础—手写控件,frame,center和bounds属性
- iOS开发UI基础—手写控件,frame,center和bounds属性
- iOS开发UI基础—手写控件,frame,center和bounds属性
- iOS-UI基础-手写控件,frame,center和bounds属性
- IOS学习之iOS开发UI基础—手写控件,frame,center和bounds属性
- OS开发UI基础—手写控件,frame,center和bounds属性
- 38-UI基础常见问题(UIButton和UIImage区别,UIImage两种加载方式区别,frame,bounds,center作用和区别)
- iOS开发UI基础—手写控件,frame,center和bounds属性
- iOS开发UI基础—手写控件,frame,center和bounds属性
- UI基础第三弹:手写控件frame,center和bounds属性
- iOS开发UI基础—手写控件,frame,center和bounds属性
- iOS开发UI基础—02手写控件,frame,center和bounds属性
- 文顶顶 iOS开发UI篇—手写控件,frame,center和bounds属性 iOS开发UI基础—手写控件,frame,center和bounds属性
- iOS开发UI基础—手写控件,frame,center和bounds属性