UIView屬性,uiview的layer屬性

來源:互聯網
上載者:User

UIView屬性,uiview的layer屬性
UIView屬性

autoresizingMask

自動調整子控制項與父控制項中間的位置,寬高。

UIViewAutoresizingNone就是不自動調整。

UIViewAutoresizingFlexibleLeftMargin 自動調整與superView左邊的距離,保證與superView右邊的距離不變。

UIViewAutoresizingFlexibleRightMargin 自動調整與superView的右邊距離,保證與superView左邊的距離不變。

UIViewAutoresizingFlexibleTopMargin 自動調整與superView頂部的距離,保證與superView底部的距離不變。

UIViewAutoresizingFlexibleBottomMargin 自動調整與superView底部的距離,也就是說,與superView頂部的距離不變。

UIViewAutoresizingFlexibleWidth 自動調整自己的寬度,保證與superView左邊和右邊的距離不變。

UIViewAutoresizingFlexibleHeight 自動調整自己的高度,保證與superView頂部和底部的距離不變。

autoresizesSubviews

自動尺寸調整autoresizesSubviews屬性聲明被設定為YES, 則其子視圖會根據autoresizingMask屬性的值自動進行尺寸調整。 簡單配置一下視圖的自動尺寸調整掩碼常常就能使應用程式得到合適的行為;否則, 應用程式就必須通過重載layoutSubviews方法來提供自己的實現。

sizeThatFits

計算並返回的大小最適合它的子視圖的視圖。(讓視圖計算最適合子視圖的大小,即能把全部子視圖顯示出來所需要的最小的size)

sizeToFit

得到最適合當前包含它子視圖的尺寸(根據子視圖的大小位置,調整視圖,使其恰好圍繞子視圖,也就是說自動適應子視圖的大小,只顯示子視圖)

frame

在父視圖位置(參照點是,父view座標系統)

bounds

該view在本地座標系統中的位置和大小(參照點是,本地座標系統)

center

frame中的中心點(決定當前視圖是否是處理觸摸事件的唯一對象)

小屬性

hidden 隱藏視圖

alpha 透明度(0~1)

opaque 不透明度 (0~1)

userInteractionEnabled 互動

multipleTouchEnabled 支援多點觸控

exclusiveTouch 決定當前視圖是否處理出門事件的唯一對象

clearsContextBeforeDrawing

決定在視圖重畫之前是否先清理視圖以前的內容,預設值為YES 如果你把這個屬性設為NO,那麼你要保證能在 drawRect:方法中正確的繪畫。如果你的代碼 已經做了大量最佳化,那麼設為NO可以提高效能,尤其是在滾動時可能只需要重新繪畫視圖的一部分

clipsToBounds

決定子視圖是否被限定在當前視圖的bounds中,預設值為NO

ContentScaleFactor

應用到當前視圖的比例Scale

gestureRecognizers

當前視圖所附加的手勢辨識器

layer

用於視圖渲染的核心動畫層

motionEffects

當前視圖的運動效果(當前視圖的運動效果,IOS7才開始擁有)

restorationIdentifier

該標示符決定該視圖是否支援恢複狀態,其實也只是個標示符而已個人覺得就相當於配置表視圖每個儲存格時使用的標示符一樣,可以直接在記憶體中重用,提高了效能還有一點需注意,不應該簡單的定義這個標示符,因為其所屬的view controller ,還有view controller的所有 父view controllers都必須有一個恢複標識符

基本

subviews 當前視圖的所有子視圖

superview 當前視圖的父視圖

tag 當前視表徵圖簽

tintAdjustmentMode 色調調整模式,開始用於iOS7

transform 視圖仿射變換

userInteractionEnabled 決定與使用者互動事件是否從被忽略並從事件隊列中移除

windows 當前視圖上的UIWindow

UIViewContentModel

UIViewContentModeScaleToFill, 縮放內容到合適比例大小

UIViewContentModeScaleAspectFit, 縮放內容到合適的大小,邊界多餘部分透明

UIViewContentModeScaleAspectFill, 縮放內容填充到指定大小,邊界多餘的部分省略

UIViewContentModeRedraw, 重繪視圖邊界

UIViewContentModeCenter, 視圖保持等比縮放

UIViewContentModeTop, 視圖頂部對齊

UIViewContentModeBottom, 視圖底部對齊

UIViewContentModeLeft, 視圖左側對齊

UIViewContentModeRight, 視圖右側對齊

UIViewContentModeTopLeft, 視圖左上方對齊

UIViewContentModeTopRight, 視圖右上方對齊

UIViewContentModeBottomLeft, 視圖左下角對齊

UIViewContentModeBottomRight, 視圖右下角對齊

編輯結束/開始 視圖中的編輯狀態(一般用作於收鍵盤)

(BOOL)endEditing:(BOOL)force

關於響應

-(void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer 為視圖添加一個手勢辨識器

-(void)removeGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer 移除一個手勢辨識器

-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 開始一個手勢辨識器

-(void)addMotionEffect:(UIMotionEffect *)effect 開始向視圖中添加運動效果,這麼說其實比較模糊,比如說警告框會隨著手機的傾斜而傾斜, 當然這需要代碼實現,只是我們現在可以檢測手機的運動事件來做出相應的響應—從IOS7開始使用

管理檢視層次

-(void)addSubview:(UIView *)view 添加子視圖

-(void)removeFromSuperview 從父視圖中移除

-(void)bringSubviewToFront:(UIView *)view 移動指定的子視圖到最頂層

-(void)sendSubviewToBack:(UIView *)view 移動制定的子視圖到後方,所有子視圖的下面

-(void)insertSubview:(UIView *)view atIndex:(NSInteger)index 在指定的位置插入子視圖,視圖的所有視圖其實組成了一個數組

-(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 設定視圖自動調整尺寸的掩碼是否轉化為基於約束布局的約束

-(BOOL)translatesAutoresizingMaskIntoConstraints 判斷視圖是否將自動調整尺寸的掩碼是否轉化為基於約束布局的約束

管理約束

-(NSArray *)constraints 返回由視圖建立的約束

-(void)addConstraint:(NSLayoutConstraint *)constraint 為視圖布局或者子視圖添加一個約束,constraint約束只能在當前視圖範圍內,包括子視圖

-(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 廢除視圖原本內容的size

-(UILayoutPriority)contentCompressionResistancePriorityForAxis:(UILayoutConstraintAxis)axis 設定當視圖要變小時,視圖的壓縮改變方式,是水平縮小還是垂直縮小,並返回一個優先權

-(void)setContentCompressionResistancePriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis 設定優先權

-(UILayoutPriority)contentHuggingPriorityForAxis:(UILayoutConstraintAxis)axis 與上邊相反是視圖的放大改變方式

-(void)setContentHuggingPriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis

校準視圖 (Aligning Views with Constraint-Based Layout)

-(CGRect)alignmentRectForFrame:(CGRect)frame 返回給定架構的視圖的對齊矩陣

-(CGRect)frameForAlignmentRect:(CGRect)alignmentRect 返回給定對齊矩形的視圖的frame

-(UIEdgeInsets)alignmentRectInsets 返回從視圖的frame上定義的對齊矩陣的邊框

-(UIView *)viewForBaselineLayout 返回滿足基準約束條件的視圖

觸發基於約束的布局 (Triggering Constraint-Based Layout)

-(BOOL)needsUpdateConstraints 視圖的約束是否需要更新

-(void)setNeedsUpdateConstraints 設定視圖的約束需要更新

-(void)updateConstraints 為視圖更新約束

-(void)updateConstraintsIfNeeded 更新視圖和其子視圖的約束

調試基於約束的布局 (Debugging Constraint-Based Layout)

-(NSArray *)constraintsAffectingLayoutForAxis:(UILayoutConstraintAxis)axis 返回影響一個給定軸視圖布局的約束

-(BOOL)hasAmbiguousLayout 視圖的位置是否不完全指定

-(void)exerciseAmbiguityInLayout 在不同的有效值之間用一個模糊的布局隨機改變視圖的frame

繪畫和更新視圖 (Drawing and Updating the View)

-(void)drawRect:(CGRect)rect 在指定的地區繪畫視圖

-(void)setNeedsDisplay 標記整個視圖的邊界矩形需要重繪

-(void)setNeedsDisplayInRect:(CGRect)invalidRect 標記在指定地區內的視圖的邊界需要重繪

格式化列印視圖內容

-(UIViewPrintFormatter *)viewPrintFormatter 返回視圖的列印格式化

-(void)drawRect:(CGRect)area forViewPrintFormatter:(UIViewPrintFormatter *)formatter 指定地區和列印格式繪畫視圖內容

儲存和恢複狀態 (Preserving and Restoring State)

-(void)encodeRestorableStateWithCoder:(NSCoder *)coder 編碼視圖的狀態資訊

-(void)decodeRestorableStateWithCoder:(NSCoder *)coder 解碼一個檢視狀態資訊

轉換視圖間座標 (Converting Between View Coordinate Systems)

-(CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view 轉換一個點從接受對象的座標繫到指定視圖

-(CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view//與上面相反,指定視圖座標中的一個點轉換為接收對象

-(CGRect)convertRect:(CGRect)rect toView:(UIView *)view

-(CGRect)convertRect:(CGRect)rect fromView:(UIView *)view 參照上面兩個方法

視圖中的點擊測試

-(UIView )hitTest:(CGPoint)point withEvent:(UIEvent )event 在指定點上點擊測試指定事件

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 測試指定的點是否包含在接收對象中

注意與視圖相關聯的改變 (Observing View-Related Changes)

-(void)didAddSubview:(UIView *)subview 通知視圖指定子視圖已經添加

-(void)willRemoveSubview:(UIView *)subview 通知視圖將要移除指定的子視圖

-(void)willMoveToSuperview:(UIView *)newSuperview 通知視圖將要移動到一個新的父視圖中

-(void)didMoveToSuperview 通知視圖已經移動到一個新的父視圖中

-(void)willMoveToWindow:(UIWindow *)newWindow 通知視圖將要移動到一個新的window中

-(void)didMoveToWindow 通知視圖已經移動到一個新的window中

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.