ios 學習筆記 1

來源:互聯網
上載者:User

1. NSClassFromString

  這個方法判斷類是否存在,如果存在就動態載入的,不存為就返回一個Null 物件;

  id myObj = [[NSClassFromString(@"MySpecialClass") alloc] init];

  正常情況下等價於:id myObj = [[MySpecialClass alloc] init];

  優點:

1, 弱化串連,因此並不會把沒有的Framework也link到程式中。

2,不需要使用import,因為類是動態載入的,只要存在就可以載入。因此如果你的toolchain中沒有某個類的標頭檔定義,而你確信這個類是可以用的,那麼也可以用這種方法。

 

2. NSSelectorFromString

  這個方法是上個方法的補充,也是動態載入執行個體方法。

  SEL sel = NSSelectorFromString(@"doSomethingMethod:")//注意這個冒號,說明方法帶有參數

  if([object respondsToSelector:sel]) { 

      [object performSelector:sel withObject:color]; //注意如果有兩個參數,使用兩個withObject:參數;

  }

3. isKindOfClass

  isKindOfClass 我們也可以使用isKindOfClass來檢查一個對象是否是一個類的成員


4. isMemberOfClass

  isMemberOfClass方法是來確定對象是否是某一個類的成員

  

 

5. initWithCoder和initWithFrame的區別  initWithCoder是一個類在IB中建立但在xocdde中被執行個體化時被調用的.比如,通過IB建立一個controller的nib檔案,然後在xocde中通過initWithNibName來執行個體化這個controller,那麼這個controller的initWithCoder會被調用. 

  initWithFrame是由使用者建立的UIView子類,執行個體時被調用

6. UIView autoresizingMask

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

  self.autoresizingMask = UIViewAutoresizingFlexibleWidth;//這個常量如果被設定,視圖的寬度將和父視圖的寬度一起成比例變化。否則,視圖的寬度將保持不變。

  

UIViewAutoresizingNone

這個常量如果被設定,視圖將不進行自動尺寸調整。

UIViewAutoresizingFlexibleHeight

這個常量如果被設定,視圖的高度將和父視圖的高度一起成比例變化。否則,視圖的高度將保持不變。

UIViewAutoresizingFlexibleWidth

這個常量如果被設定,視圖的寬度將和父視圖的寬度一起成比例變化。否則,視圖的寬度將保持不變。

UIViewAutoresizingFlexibleLeftMargin

這個常量如果被設定,視圖的左邊界將隨著父視圖寬度的變化而按比例進行調整。否則,視圖和其父視圖的左邊界的相對位置將保持不變。

UIViewAutoresizingFlexibleRightMargin

這個常量如果被設定,視圖的右邊界將隨著父視圖寬度的變化而按比例進行調整。否則,視圖和其父視圖的右邊界的相對位置將保持不變。

UIViewAutoresizingFlexibleBottomMargin

這個常量如果被設定,視圖的底邊界將隨著父視圖高度的變化而按比例進行調整。否則,視圖和其父視圖的底邊界的相對位置將保持不變。

UIViewAutoresizingFlexibleTopMargin

這個常量如果被設定,視圖的上邊界將隨著父視圖高度的變化而按比例進行調整。否則,視圖和其父視圖的上邊界的相對位置將保持不變。

  


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.