NSClassFromString,NSSelectorFromString,isKingOfClass

NSClassFromString,NSSelectorFromString,isKingOfClasscode

  1. NSClassFromStringorm

  這個方法判斷類是否存在,若是存在就動態加載的,不存爲就返回一個空對象;對象

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

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

  優勢:form

1, 弱化鏈接,所以並不會把沒有的Framework也link到程序中。import

2,不須要使用import,由於類是動態加載的,只要存在就能夠加載。所以若是你的toolchain中沒有某個類的頭文件定義,而你確信這個類是能夠用的,那麼也能夠用這種方法。配置

  1. NSSelectorFromStringobject

  這個方法是上個方法的補充,也是動態加載實例方法。程序

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

  if([object respondsToSelector:sel]) {

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

  }

  1. isKindOfClass

  isKindOfClass 咱們也可使用isKindOfClass來檢查一個對象是不是一個類的成員

  1. isMemberOfClass

  isMemberOfClass方法是來肯定對象是不是某一個類的成員

  

  1. initWithCoder和initWithFrame的區別  initWithCoder是一個類在IB中建立但在xocdde中被實例化時被調用的.好比,經過IB建立一個controller的nib文件,而後在xocde中經過initWithNibName來實例化這個controller,那麼這個controller的initWithCoder會被調用.
      initWithFrame是由用戶建立的UIView子類,實例時被調用

  2. UIView autoresizingMask

  若是視圖的autoresizesSubviews屬性聲明被設置爲YES,則其子視圖會根據autoresizingMask屬性的值自動進行尺寸調整。簡單配置一下視圖的自動尺寸調整掩碼經常就能使應用程序獲得合適的行爲;不然,應用程序就必須經過重載layoutSubviews方法來提供本身的實現。

  self.autoresizingMask = UIViewAutoresizingFlexibleWidth;//這個常量若是被設置,視圖的寬度將和父視圖的寬度一塊兒成比例變化。不然,視圖的寬度將保持不變。

  

UIViewAutoresizingNone

這個常量若是被設置,視圖將不進行自動尺寸調整。

UIViewAutoresizingFlexibleHeight

這個常量若是被設置,視圖的高度將和父視圖的高度一塊兒成比例變化。不然,視圖的高度將保持不變。

UIViewAutoresizingFlexibleWidth

這個常量若是被設置,視圖的寬度將和父視圖的寬度一塊兒成比例變化。不然,視圖的寬度將保持不變。

UIViewAutoresizingFlexibleLeftMargin

這個常量若是被設置,視圖的左邊界將隨着父視圖寬度的變化而按比例進行調整。不然,視圖和其父視圖的左邊界的相對位置將保持不變。

UIViewAutoresizingFlexibleRightMargin

這個常量若是被設置,視圖的右邊界將隨着父視圖寬度的變化而按比例進行調整。不然,視圖和其父視圖的右邊界的相對位置將保持不變。

UIViewAutoresizingFlexibleBottomMargin

這個常量若是被設置,視圖的底邊界將隨着父視圖高度的變化而按比例進行調整。不然,視圖和其父視圖的底邊界的相對位置將保持不變。

UIViewAutoresizingFlexibleTopMargin

這個常量若是被設置,視圖的上邊界將隨着父視圖高度的變化而按比例進行調整。不然,視圖和其父視圖的上邊界的相對位置將保持不變。

相關文章
相關標籤/搜索