給iOS開發新手送點福利,簡述UIView的屬性和用法

徐明清發表於2013-12-18

UIView

1.alpha

設定檢視的透明度.預設為1.

    // 完全透明

    view.alpha = 0;

    // 不透明

   view.alpha = 1;

2.clipsToBounds

 // 預設是NO,當設定為yes時,超出當前檢視的尺寸的內容和子檢視不會顯示。

  view.clipsToBounds = YES;

3.hidden

// 預設是NO,當設定為yes,檢視就看不見了。

view.hidden = YES;

 

4.userInteractionEnabled

    // 預設為YES,如果設定為No,view就不能和使用者互動了。(即不能響應事件)

view.userInteractionEnabled = NO;

5. tag

    // 預設為0,用來標記檢視的

view.tag = 0;

5. exclusiveTouch

預設為No

exclusiveTouch的意義在於:如果當前設定了exclusiveTouch的UIView是整個觸控事件的第一響應者,那麼到你所有的手指離開螢幕前其他的UIView是無法接受到整個事件週期內所有的觸控事件。

6.CGRect frame

1> 表示控制元件的位置和尺寸(以父控制元件的左上角為座標原點(0, 0))

2> 修改這個屬性,可以調整控制元件的位置和尺寸

 

7.CGPoint center

1> 表示控制元件的中點(以父控制元件的左上角為座標原點)

2> 修改這個屬性,可以調整控制元件的位置

 

8.CGRect bounds

1> 表示控制元件的位置和尺寸(以自己的左上角位座標原點,位置永遠是(0, 0))

2> 修改這個屬性,只能調整控制元件的尺寸

 

9.CGAffineTransform transform

1> 表示控制元件的形變狀態(旋轉角度、縮放比例)

2> 建立CGAffineTransform的函式

* CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)

建立一個x、y方向的縮放比例分別為sx、sy的形變值

 

* CGAffineTransformMakeRotation(CGFloat angle)

建立一個旋轉角度為angle的形變值

 

* CGAffineTransformScale(CGAffineTransform t, CGFloat sx, CGFloat sy)

在形變值t的基礎上,再進行縮放,x、y方向的縮放比例分別為sx、sy,然後返回一個新的形變值

 

* CGAffineTransformRotate(CGAffineTransform t, CGFloat angle)

在形變值t的基礎上,再進行旋轉,旋轉角度為angle,然後返回一個新的形變值

10.superview

返回當前檢視的父檢視。(只讀)

11.window

返回當前檢視的視窗。(視窗)

 

獲取根檢視的superview和window時,需要注意,在viewdidload中是獲取不到的,viewdidload只是檢視載入完成,並沒有新增到視窗中,因此需要在viewDidAppear方法中才能獲取到。那時候檢視才被新增到視窗中。

- (void)viewDidLoad

{

      [super viewDidLoad];

      NSLog(@"%@",self.view.superview); // 沒有值

      NSLog(@"%@", self.view.window); // 沒有值

}

- (void)viewDidAppear:(BOOL)animated

{

      NSLog(@"%@",self.view.superview); // 有值

      NSLog(@"%@", self.view.window);  // 有值

}

 

12.autoresizesSubviews

預設為YES,表示當父檢視尺寸改變時,子檢視也會隨著改變。

13.autoresizingMask

預設為UIViewAutoresizingNone,不會自動伸縮。

14.contentMode

設定內容模式。

UIViewContentModeScaleToFill  不按照原寬高比例(長和寬不等比例增長)以任意比例填充。這樣檢視不會有空白,且內容可以全部顯示。

UIViewContentModeAspectToFill  按照原長寬比例填充,不完全顯示全部內容。這樣內容可能溢位,但整個檢視不會留有空白。

UIViewContentModeAspectToFit   按照原長寬比例(長和寬等比例增長),完全顯示全部內容。這樣容易照成左右或者上下留有空白。

15.backgroundColor

預設是nil。

// 設定背景顏色為紅色

self.view.backgroundColor = [UIColor redColor];

16.UIView常用新增子檢視方法

  1. addSubview:            //加一個檢視到一個檢視裡面  
  2. bringSubviewToFront:       //將一個檢視移到前面  
  3. sendSubviewToBack:        //將一個檢視推送到背後  
  4. removeFromSuperview       //把檢視移除  
  5. insertSubview:atIndex:       //插入檢視 並指定索引  
  6. insertSubview:aboveSubview:   //插入檢視在某個檢視之上  
  7. insertSubview:belowSubview:    //插入檢視在某個檢視之下  
  8. exchangeSubviewAtIndex:withSubviewAtIndex:        //交換兩個位置索引的檢視 

相關文章