UIView常見屬性方法

jopen 10年前發布 | 63K 次閱讀 UIView iOS開發 移動開發

 UIView : UIResponder<NSCODING, uidynamicitem="" uiappearancecontainer,="" uiappearance,="">
/**

  • 通過一個frame來初始化一個UI控件 */
    • (id)initWithFrame:(CGRect)frame;

// YES:能夠跟用戶進行交互 @property(nonatomic,getter=isUserInteractionEnabled) BOOL userInteractionEnabled; // default is YES

// 控件的一個標記(父控件可以通過tag找到對應的子控件) @property(nonatomic) NSInteger tag; // default is 0

// 圖層(可以用來設置圓角效果\陰影效果) @property(nonatomic,readonly,retain) CALayer *layer;

@interface UIView(UIViewGeometry) // 位置和尺寸(以父控件的左上角為坐標原點(0, 0)) @property(nonatomic) CGRect frame;

// 位置和尺寸(以自己的左上角為坐標原點(0, 0)) @property(nonatomic) CGRect bounds;

// 中點(以父控件的左上角為坐標原點(0, 0)) @property(nonatomic) CGPoint center;

// 形變屬性(平移\縮放\旋轉) @property(nonatomic) CGAffineTransform transform; // default is CGAffineTransformIdentity

// YES:支持多點觸摸 @property(nonatomic,getter=isMultipleTouchEnabled) BOOL multipleTouchEnabled; // default is NO @end

@interface UIView(UIViewHierarchy) // 父控件 @property(nonatomic,readonly) UIView *superview;

// 子控件(新添加的控件默認都在subviews數組的后面, 新添加的控件默認都顯示在最上面\最頂部) @property(nonatomic,readonly,copy) NSArray *subviews;

// 獲得當前控件所在的window @property(nonatomic,readonly) UIWindow *window;

// 從父控件中移除一個控件

  • (void)removeFromSuperview;

// 添加一個子控件(可以將子控件插入到subviews數組中index這個位置)

  • (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;

// 交換subviews數組中所存放子控件的位置

  • (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2;

// 添加一個子控件(新添加的控件默認都在subviews數組的后面, 新添加的控件默認都顯示在最上面\最頂部)

  • (void)addSubview:(UIView *)view;

// 添加一個子控件view(被擋在siblingSubview的下面)

  • (void)insertSubview:(UIView )view belowSubview:(UIView )siblingSubview;

// 添加一個子控件view(蓋在siblingSubview的上面)

  • (void)insertSubview:(UIView )view aboveSubview:(UIView )siblingSubview;

// 將某個子控件拉到最上面(最頂部)來顯示

  • (void)bringSubviewToFront:(UIView *)view;

// 將某個子控件拉到最下面(最底部)來顯示

  • (void)sendSubviewToBack:(UIView *)view;

/系統自動調用(留給子類去實現)/

  • (void)didAddSubview:(UIView *)subview;
  • (void)willRemoveSubview:(UIView *)subview;

  • (void)willMoveToSuperview:(UIView *)newSuperview;

  • (void)didMoveToSuperview;
  • (void)willMoveToWindow:(UIWindow *)newWindow;
  • (void)didMoveToWindow; /系統自動調用/

// 是不是view的子控件或者子控件的子控件(是否為view的后代)

  • (BOOL)isDescendantOfView:(UIView *)view; // returns YES for self.

// 通過tag獲得對應的子控件(也可以或者子控件的子控件)

  • (UIView *)viewWithTag:(NSInteger)tag; // recursive search. includes self

/系統自動調用(留給子類去實現)/ // 控件的frame發生改變的時候就會調用,一般在這里重寫布局子控件的位置和尺寸 // 重寫了這個寫方法后,一定調用[super layoutSubviews];

  • (void)layoutSubviews;

@end

@interface UIView(UIViewRendering) // YES : 超出控件邊框范圍的內容都剪掉 @property(nonatomic) BOOL clipsToBounds;

// 背景色 @property(nonatomic,copy) UIColor *backgroundColor; // default is nil

// 透明度(0.0~1.0) @property(nonatomic) CGFloat alpha; // default is 1.0

// YES:不透明 NO:透明 @property(nonatomic,getter=isOpaque) BOOL opaque; // default is YES

// YES : 隱藏 NO : 顯示 @property(nonatomic,getter=isHidden) BOOL hidden;

// 內容模式 @property(nonatomic) UIViewContentMode contentMode; // default is UIViewContentModeScaleToFill @end //動畫 @interface UIView(UIViewAnimationWithBlocks)

  • (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion;
  • (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion;

  • (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations;

  • (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay usingSpringWithDamping:(CGFloat)dampingRatio initialSpringVelocity:(CGFloat)velocity options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion; @end</NSCODING,></pre>
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!