autoresizingMask
自動調(diào)整子控件與父控件中間的位置刑棵,寬高
UIViewAutoresizingNone就是不自動調(diào)整。
UIViewAutoresizingFlexibleLeftMargin 自動調(diào)整與superView左邊的距離括授,保證與superView右邊的距離不變碍现。
UIViewAutoresizingFlexibleRightMargin 自動調(diào)整與superView的右邊距離叠聋,保證與superView左邊的距離不變煤惩。
UIViewAutoresizingFlexibleTopMargin 自動調(diào)整與superView頂部的距離畜晰,保證與superView底部的距離不變喻犁。
UIViewAutoresizingFlexibleBottomMargin 自動調(diào)整與superView底部的距離,也就是說上岗,與superView頂部的距離不變碧聪。
UIViewAutoresizingFlexibleWidth 自動調(diào)整自己的寬度,保證與superView左邊和右邊的距離不變液茎。
UIViewAutoresizingFlexibleHeight 自動調(diào)整自己的高度,保證與superView頂部和底部的距離不變辞嗡。
例:UIViewAutoresizingFlexibleLeftMargin
|UIViewAutoresizingFlexibleRightMargin
自動調(diào)整與superView左邊的距離捆等,保證與左邊的距離和右邊的距離和原來距左邊和右邊的距離的比例不變。
比如原來距離為20续室,30栋烤,調(diào)整后的距離應(yīng)為68,102挺狰,即68/20=102/30明郭。
autoresizesSubviews
自動尺寸調(diào)整(autoresizesSubviews屬性聲明被設(shè)置為YES,
則其子視圖會根據(jù)autoresizingMask屬性的值自動進(jìn)行尺寸調(diào)整丰泊。
簡單配置一下視圖的自動尺寸調(diào)整掩碼常常就能使應(yīng)用程序得到合適的行為薯定;否則,
應(yīng)用程序就必須通過重載layoutSubviews方法來提供自己的實(shí)現(xiàn)瞳购。)
sizeThatFits
計(jì)算并返回的大小最適合它的子視圖的視圖话侄。(讓視圖計(jì)算最適合子視圖的大小,即能把全部子視圖顯示出來所需要的最小的size)
sizeToFit
得到最適合當(dāng)前包含它子視圖的尺寸(根據(jù)子視圖的大小位置,調(diào)整視圖年堆,使其恰好圍繞子視圖吞杭,也就是說自動適應(yīng)子視圖的大小,只顯示子視圖)
frame
在父視圖位置(參照點(diǎn)是变丧,父view坐標(biāo)系統(tǒng))
bounds
該view在本地坐標(biāo)系統(tǒng)中的位置和大小(參照點(diǎn)是芽狗,本地坐標(biāo)系統(tǒng))
center
frame中的中心點(diǎn)(決定當(dāng)前視圖是否是處理觸摸事件的唯一對象)
小屬性
hidden 隱藏視圖
alpha 透明度(0~1)
opaque 不透明度 (0~1)
userInteractionEnabled 交互
multipleTouchEnabled 支持多點(diǎn)觸控
exclusiveTouch 決定當(dāng)前視圖是否處理出門事件的唯一對象
clearsContextBeforeDrawing
決定在視圖重畫之前是否先清理視圖以前的內(nèi)容,缺省值為YES
如果你把這個(gè)屬性設(shè)為NO痒蓬,那么你要保證能在 drawRect:方法中正確的繪畫童擎。如果你的代碼
已經(jīng)做了大量優(yōu)化,那么設(shè)為NO可以提高性能谊却,尤其是在滾動時(shí)可能只需要重新繪畫視圖的一部分
clipsToBounds
決定子視圖是否被限定在當(dāng)前視圖的bounds中柔昼,缺省值為NO
ContentScaleFactor
應(yīng)用到當(dāng)前視圖的比例Scale
gestureRecognizers
當(dāng)前視圖所附加的手勢識別器
layer
用于視圖渲染的核心動畫層
motionEffects
當(dāng)前視圖的運(yùn)動效果(當(dāng)前視圖的運(yùn)動效果,IOS7才開始擁有)
restorationIdentifier
該標(biāo)示符決定該視圖是否支持恢復(fù)狀態(tài)炎辨,其實(shí)也只是個(gè)標(biāo)示符而已個(gè)人覺得就相當(dāng)于配置表視圖每個(gè)單元格時(shí)使用的標(biāo)示符一樣捕透,可以直接在內(nèi)存中重用,提高了性能還有一點(diǎn)需注意碴萧,不應(yīng)該簡單的定義這個(gè)標(biāo)示符乙嘀,因?yàn)槠渌鶎俚膙iew controller ,還有view controller的所有 父view controllers都必須有一個(gè)恢復(fù)標(biāo)識符
subviews 當(dāng)前視圖的所有子視圖
superview 當(dāng)前視圖的父視圖
tag 當(dāng)前視圖標(biāo)簽
tintAdjustmentMode 色調(diào)調(diào)整模式破喻,開始用于iOS7
transform 視圖仿射變換
userInteractionEnabled 決定與用戶交互事件是否從被忽略并從事件隊(duì)列中移除
windows 當(dāng)前視圖上的UIWindow
UIViewContentModel
UIViewContentModeScaleToFill, 縮放內(nèi)容到合適比例大小
UIViewContentModeScaleAspectFit, 縮放內(nèi)容到合適的大小虎谢,邊界多余部分透明
UIViewContentModeScaleAspectFill, 縮放內(nèi)容填充到指定大小,邊界多余的部分省略
UIViewContentModeRedraw, 重繪視圖邊界
UIViewContentModeCenter, 視圖保持等比縮放
UIViewContentModeTop, 視圖頂部對齊
UIViewContentModeBottom, 視圖底部對齊
UIViewContentModeLeft, 視圖左側(cè)對齊
UIViewContentModeRight, 視圖右側(cè)對齊
UIViewContentModeTopLeft, 視圖左上角對齊
UIViewContentModeTopRight, 視圖右上角對齊
UIViewContentModeBottomLeft, 視圖左下角對齊
UIViewContentModeBottomRight, 視圖右下角對齊
編輯結(jié)束/開始 視圖中的編輯狀態(tài)(一般用作于收鍵盤)
(BOOL)endEditing:(BOOL)force
關(guān)于響應(yīng)
- (void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
為視圖添加一個(gè)手勢識別器
- (void)removeGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
移除一個(gè)手勢識別器
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
開始一個(gè)手勢識別器
- (void)addMotionEffect:(UIMotionEffect *)effect
開始向視圖中添加運(yùn)動效果曹质,這么說其實(shí)比較模糊婴噩,比如說警告框會隨著手機(jī)的傾斜而傾斜,
當(dāng)然這需要代碼實(shí)現(xiàn)羽德,只是我們現(xiàn)在可以檢測手機(jī)的運(yùn)動事件來做出相應(yīng)的響應(yīng)—從IOS7開始使用
管理視圖層次
- (void)addSubview:(UIView *)view 添加子視圖
- (void)removeFromSuperview 從父視圖中移除
- (void)bringSubviewToFront:(UIView *)view 移動指定的子視圖到最頂層
- (void)sendSubviewToBack:(UIView *)view 移動制定的子視圖到后方几莽,所有子視圖的下面
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index 在指定的位置插入子視圖,視圖的所有視圖其實(shí)組成了一個(gè)數(shù)組
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview 將指定的子視圖移動到指定siblingSubview子視圖的前面
- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview 將指定的子視圖移動到指定siblingSubview子視圖的后面
- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2 交換兩子視圖的位置
- (BOOL)isDescendantOfView:(UIView *)view 判斷接收對象是否是指定視圖的子視圖宅静,或與指定視圖是同一視圖
選擇加入基于約束的布局( Opting in to Constraint-Based Layout)
- (void)setTranslatesAutoresizingMaskIntoConstraints:(BOOL)flag 設(shè)置視圖自動調(diào)整尺寸的掩碼是否轉(zhuǎn)化為基于約束布局的約束
- (BOOL)translatesAutoresizingMaskIntoConstraints 判斷視圖是否將自動調(diào)整尺寸的掩碼是否轉(zhuǎn)化為基于約束布局的約束
管理約束
- (NSArray *)constraints 返回由視圖創(chuàng)建的約束
- (void)addConstraint:(NSLayoutConstraint *)constraint 為視圖布局或者子視圖添加一個(gè)約束章蚣,constraint約束只能在當(dāng)前視圖范圍內(nèi),包括子視圖
- (void)addConstraints:(NSArray *)constraints 添加一組約束
- (void)removeConstraint:(NSLayoutConstraint *)constraint 移除視圖上指定的約束
- (void)removeConstraints:(NSArray *)constraints 移除指定的一組約束
在基于約束布局的測量 (Measuring in Constraint-Based Layout)
- (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize 返回滿足持有約束的視圖的size
- (CGSize)intrinsicContentSize 返回接收對象的原本大小
- (void)invalidateIntrinsicContentSize 廢除視圖原本內(nèi)容的size
- (UILayoutPriority)contentCompressionResistancePriorityForAxis:(UILayoutConstraintAxis)axis 設(shè)置當(dāng)視圖要變小時(shí)姨夹,視圖的壓縮改變方式纤垂,是水平縮小還是垂直縮小,并返回一個(gè)優(yōu)先權(quán)
- (void)setContentCompressionResistancePriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis 設(shè)置優(yōu)先權(quán)
- (UILayoutPriority)contentHuggingPriorityForAxis:(UILayoutConstraintAxis)axis 與上邊相反是視圖的放大改變方式
- (void)setContentHuggingPriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis
校準(zhǔn)視圖 (Aligning Views with Constraint-Based Layout)
- (CGRect)alignmentRectForFrame:(CGRect)frame 返回給定框架的視圖的對齊矩陣
- (CGRect)frameForAlignmentRect:(CGRect)alignmentRect 返回給定對齊矩形的視圖的frame
- (UIEdgeInsets)alignmentRectInsets 返回從視圖的frame上定義的對齊矩陣的邊框
- (UIView *)viewForBaselineLayout 返回滿足基線約束條件的視圖
觸發(fā)基于約束的布局 (Triggering Constraint-Based Layout)
- (BOOL)needsUpdateConstraints 視圖的約束是否需要更新
- (void)setNeedsUpdateConstraints 設(shè)置視圖的約束需要更新
- (void)updateConstraints 為視圖更新約束
- (void)updateConstraintsIfNeeded 更新視圖和其子視圖的約束
調(diào)試基于約束的布局 (Debugging Constraint-Based Layout)
- (NSArray *)constraintsAffectingLayoutForAxis:(UILayoutConstraintAxis)axis 返回影響一個(gè)給定軸視圖布局的約束
- (BOOL)hasAmbiguousLayout 視圖的位置是否不完全指定
- (void)exerciseAmbiguityInLayout 在不同的有效值之間用一個(gè)模糊的布局隨機(jī)改變視圖的frame
繪畫和更新視圖 (Drawing and Updating the View)
- (void)drawRect:(CGRect)rect 在指定的區(qū)域繪畫視圖
- (void)setNeedsDisplay 標(biāo)記整個(gè)視圖的邊界矩形需要重繪
- (void)setNeedsDisplayInRect:(CGRect)invalidRect 標(biāo)記在指定區(qū)域內(nèi)的視圖的邊界需要重繪
格式化打印視圖內(nèi)容
- (UIViewPrintFormatter *)viewPrintFormatter 返回視圖的打印格式化
- (void)drawRect:(CGRect)area forViewPrintFormatter:(UIViewPrintFormatter *)formatter 指定區(qū)域和打印格式繪畫視圖內(nèi)容
保存和恢復(fù)狀態(tài) (Preserving and Restoring State)
- (void)encodeRestorableStateWithCoder:(NSCoder *)coder 編碼視圖的狀態(tài)信息
- (void)decodeRestorableStateWithCoder:(NSCoder *)coder 解碼一個(gè)視圖狀態(tài)信息
轉(zhuǎn)換視圖間坐標(biāo) (Converting Between View Coordinate Systems)
- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view 轉(zhuǎn)換一個(gè)點(diǎn)從接受對象的坐標(biāo)系到指定視圖
- (CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view//與上面相反磷账,指定視圖坐標(biāo)中的一個(gè)點(diǎn)轉(zhuǎn)換為接收對象
- (CGRect)convertRect:(CGRect)rect toView:(UIView *)view
- (CGRect)convertRect:(CGRect)rect fromView:(UIView *)view 參照上面兩個(gè)方法
視圖中的點(diǎn)擊測試
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
在指定點(diǎn)上點(diǎn)擊測試指定事件
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
測試指定的點(diǎn)是否包含在接收對象中
注意與視圖相關(guān)聯(lián)的改變 (Observing View-Related Changes)
- (void)didAddSubview:(UIView *)subview 通知視圖指定子視圖已經(jīng)添加
- (void)willRemoveSubview:(UIView *)subview 通知視圖將要移除指定的子視圖
- (void)willMoveToSuperview:(UIView *)newSuperview 通知視圖將要移動到一個(gè)新的父視圖中
- (void)didMoveToSuperview 通知視圖已經(jīng)移動到一個(gè)新的父視圖中
- (void)willMoveToWindow:(UIWindow *)newWindow 通知視圖將要移動到一個(gè)新的window中
- (void)didMoveToWindow 通知視圖已經(jīng)移動到一個(gè)新的window中