1.属性
@property(nonatomic,readonly)UIView *superview;
获得自己的父控件对象
@property(nonatomic,readonly,copy)NSArray *subviews;
获得自己的所有子控件对象
@property(nonatomic)NSInteger tag;
控件的ID\标识,父控件可以通过tag来找到对应的子控件
@property(nonatomic)CGAffineTransform transform;
控件的形变属性(可以设置旋转角度、比例缩放、平移等属性)
@
property(
nonatomic)
CGRect frame;
控件所在矩形框在父控件中的位置和尺寸(
以父控件的左上角为坐标原点)
@
property(
nonatomic)
CGRect bounds;
控件所在矩形框的位置和尺寸(
以自己左上角为坐标原点,所以bounds的x\y一般为0)
@
property(
nonatomic)
CGPoint center;
控件中点的位置(
以父控件的左上角为坐标原点)
@property(nonatomic)CGFloat alpha;
透明度(范围0.0~1.0) 1是不透明,0是最透明,默认是1
//是否响应用户的交互
//UILabel和UIImageView都不是默认不响应用户交互的
//UIView和UIButton默认响应用户交互的
view.userInteractionEnabled =YES;
注:去掉Auto Layout 才能用代码改变控件大小和位置
transform属性
•利用transform属性可以修改控件的位移(位置)、缩放、旋转
•创建一个transform属性
CGAffineTransform CGAffineTransformMakeTranslation(
CGFloat tx,
CGFloat ty) ;
CGAffineTransform CGAffineTransformMakeScale(
CGFloat sx,
CGFloat sy);
CGAffineTransform CGAffineTransformMakeRotation(
CGFloatangle)
(angle是弧度制,并不是角度制)
在某个transform的基础上进行叠加
CGAffineTransform CGAffineTransformTranslate(
CGAffineTransform t,
CGFloat tx,
CGFloat ty);
CGAffineTransform CGAffineTransformScale(
CGAffineTransform t,
CGFloat sx,
CGFloat sy);
CGAffineTransform CGAffineTransformRotate(
CGAffineTransform t,
CGFloat angle);
•清空之前设置的transform属性
view.transform =CGAffineTransformIdentity;
2. 方法
1. (
void)addSubview:(
UIView*)view;
添加一个子控件view
2. (
void)removeFromSuperview;
从父控件中移除
3. (
UIView*)viewWithTag:(
NSInteger)tag;
根据一个tag标识找出对应的控件(一般都是子控件)
4.将某个视图放在最前面或最后面显示
[self.windowbringSubviewToFront:loginView];//最前
[self.windowsendSubviewToBack:loginView];最后
5.知道一个视图中有几个子视图
NSArray *array = self.window.subviews;
NSLog(@"count=%u",array.count);
6.获取视图的父视图
UIView *superView = loginView.superview;
NSLog(@"view = %@",superView);
7.隐藏视图
mainView.hidden = YES;
8.交换两个view
[self.windowexchangeSubviewAtIndex:0withSubviewAtIndex:1];
9.将一个视图插入到指定位置
[self.window insertSubview:blueView atIndex:0];
10.将一个视图放置到另一个视图之上
[self.window insertSubview:redView aboveSubview:blueView];
11.将一个视图放置到另一个视图之下
[self.window insertSubview:redView belowSubview:blueView];