1.建立UIView函數
UIView * redView = [[UIView alloc] initWithFrame:CGRectMake(10, 100, 200, 100)];動畫
UIView * blueView = [[UIView alloc] init];orm
把blueView粘貼到了redView上索引
[redView addSubview:blueView];事件
redView 就是blueView 的父視圖ip
修改父視圖屬性 對子視圖產生影響animation
2.設置隱藏it
redView.hidden = YES;//父視圖隱藏子視圖也會隱藏io
3.若是子視圖超出父視圖範圍是否裁剪子視圖 默認是NOform
redView.clipsToBounds = YES;
4.是否能夠和用戶進行交互,默認爲YES
redView.userInteractionEnabled = YES;
UIView 默認 YES
/*
若是可一個用戶交互那麼這個視圖 能夠接收點擊,子視圖也能夠接收點擊事件
誰在在上方誰想接受點擊 最上方的會攔截
若是設置爲NO 子視圖和父視圖都不能接受點擊事件,那麼這個點擊就會向下層傳遞知道能被接受事件的控件接收 若是最後沒有控件接受這個事件 事件將會被拋棄
UILabel UIIImageView userInteractionEnabled默認是NO,不能夠和用戶進行交互
若是button 粘貼到UILabel 和UIIImageView上 button是不能被點擊
若是想要能點擊button 就要把UILabel 和 UIIImageView 的userInteractionEnabled改成YES
*/
5.肯定父子視圖關係以後咱們就能夠獲取全部的子視圖
NSArray * subViews = redView.subviews;
6.獲取子視圖的父視圖
UIView * superView = blueView.superview;
7.判斷一個視圖是不是另一個視圖的子視圖
[button isDescendantOfView:redView];
8.在指定的索引位置插入一個子視圖(這個函數也會把子視圖粘貼到父視圖上)
若是指定的索引超出了 父視圖對應的索引值 那麼就會把這個子視圖插在 最上層
索引0 對應的就是最底層
[self.view insertSubview:label4 atIndex:10];
9.在指定的某個子視圖下方插入一個新的子視圖
[self.view insertSubview:label4 belowSubview:label1];
10.在指定的某個子視圖上方插入一個新的子視圖
[self.view insertSubview:label4 aboveSubview:label1];
11.父視圖 把指定的子視圖 放到最前方
[self.view bringSubviewToFront:label4];
12.父視圖 把指定的兩個視圖進行交換
[self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:2];
13.父視圖 把指定的子視圖放到最底層
[self.view sendSubviewToBack:label4];
14.能夠經過設置中心點位置
blueView.center = CGPointMake(100, 100);
15.經過bounds 改變 視圖的邊框大小
blueView.bounds = CGRectMake(0, 0, 100, 100);
//bounds 前兩項通常是 0 0
frame 和 bounds 區別
1.frame 子視圖相對於父視圖的座標系的座標
2.bounds 前兩項的座標是相對於本身座標系的座標
3.若是把bounds 中的座標改變了 那麼就會影響本身的座標系,那麼最終能影響子視圖
16.修改view的bounds會將redView的座標系改變
redView.bounds = CGRectMake(-50, -50, 200, 100);
17.view.transform
1.CGAffineTransformMakeRotation 設置視圖的旋轉角度(這個角度相對最原始的位置)
imagebutton.transform = CGAffineTransformMakeRotation(M_PI/4);
2.CGAffineTransformRotate函數相對於當前imagebutton.transform 旋轉的角度
imagebutton.transform = CGAffineTransformRotate(imagebutton.transform, M_PI/4);
18.CGAffineTransformMakeScale能夠實現 放大 縮小 上下翻轉 左右翻轉
都是相對最原始的狀態進行變換
CGAffineTransformMakeScale(x, y);
x 控制x 方向的大小 1 原始大小 >1 x方向放大 <1 縮小
y 控制 y方向 大小 1 原始大小 >1 y縱向放大 < 1縮小
x 是負數 表示相對於原始的位置 左右翻轉 翻轉180度
x 是正數 原始的位置
y 負數 相對於原始的位置 上下翻轉
y 正數 就是最原始的位置
imagebutton.transform = CGAffineTransformMakeScale(-2, 2);
19.動畫
[UIView animateWithDuration:0.25 animations:^{//執行的第一個動畫
} completion:^(BOOL finished) {//第一個動畫結束時執行
}]
20.設置父子視圖自適應/停靠模式
_redView.autoresizesSubviews = YES;//容許子視圖伴隨父視圖自動變化
21.設置子視圖的自適應模式
blueView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleBottomMargin;
/*
UIViewAutoresizingFlexibleLeftMargin = 1 << 0,
父子視圖的左邊距 會伴隨父視圖的寬度 增長而增長 減小而減小
UIViewAutoresizingFlexibleWidth = 1 << 1,
//子視圖的寬度會伴隨父視圖的寬度增長而增減 減小而減小
UIViewAutoresizingFlexibleRightMargin = 1 << 2,
父子視圖的右邊距 會伴隨父視圖的寬度 增長而增長 減小而減小
UIViewAutoresizingFlexibleTopMargin = 1 << 3,
父子視圖的上邊距 會伴隨父視圖的寬度 增長而增長 減小而減小
UIViewAutoresizingFlexibleHeight = 1 << 4,
//子視圖的高度會伴隨父視圖的高度增長而增減 減小而減小
UIViewAutoresizingFlexibleBottomMargin = 1 << 5
父子視圖的下邊距 會伴隨父視圖的寬度 增長而增長 減小而減小
*/