IOS學習 第一天

本人之前弄過Android,會點皮毛,想自學一下IOS。

最好的老師是自己【思考=》分析多元方案=》解決方案<<google, 書籍,與人思想碰撞>>=》修改方案】 善思!

學習模式 -----分析別人的項目源碼:
第一天:
1.
瞭解main函數,  UIApplication是初始化程序的核心,它接受4個參數。  其中argc和argv兩個參數來自於main()接受的兩個參數;另外兩個String型參數分別表示程序的主要類(principal class)和代理類(delegate class)


2、

plist xml格式文件通常用於儲存用戶設置
pch  預編譯文件頭
xib  Interface Builder 的圖形界面設計文檔
StoryBoard是iOS 5的新特徵,旨在代替歷史悠久的NIB/XIB 

3、

AppDelegate.m 妙用  類似於監聽接口  
應用程序啓動後,委託調用applicationDidFinishLaunching方法
應用程序要完全退出, 委託調用applicationWillTerminate方法

4、

viewcontroller 
    創建viewcontroller時,執行loadview -> viewDidLoad
    內存警告,後臺,會執行didReceiveMemoryWarning -> viewDidUnLoad;如果viewcontroller當前正在顯示(前臺)只執行didReceiveMemoryWarning

5、

IBOutlet   對編譯器而言只是一個標記,額外retain一次,所以需要release.
IBoutlet修飾的字段可以和InterfaceBuilder裏相應控件相關聯; 
IBaction修飾的方法可以和InterfaceBuilder裏控件的相應動作相關聯。

6、addSubview 是將view加到所有層的最頂層

7、insertSubView可以控制它添加到父視圖的哪一層 
    makeKeyAndVisible作用被使用對象的主窗口顯示到屏幕的最前端。
    hiddenUIView方法隱藏這個窗口

8、

@protocol MyProtocol <NSObject> 
-(void) firstMethod
@end 協議,OC 沒有多繼承,不過可以通過協議來委託或者叫代理

9、

@property (nonatomic, retain) Engine* engine; 代碼生成機制 ,生成不同類型的getter/setter函數,接口類使用
@synthesize   engine, 合成器,實現類裏面使用

10、

initWithFrame  沒用Nib文件(XIB)時,用代碼控制視圖內容,需要調用initWithFrame去初始化 
視圖加載nib文件,從nib中加載對象實例時, 使用 initWithCoder初始化這些實例對象

11、  

respondsToSelector該方法詢問對象以確定其是否能夠響應某個特定的消息
    if([car respondsToSelector @selector(setWheel)] == YES]) 
   {
    }

12、

viewDidLoad:在視圖加載後被調用
viewWillAppear:視圖即將可見時調用。默認情況下不執行任何操作
viewDidAppear: 視圖已完全過渡到屏幕上時調用
viewWillDisappear:視圖被駁回時調用,覆蓋或以其他方式隱藏。默認情況下不執行任何操作
viewDidDisappear:視圖被駁回後調用,覆蓋或以其他方式隱藏。默認情況下不執行任何操作

13、

initWithFrame  沒用Nib文件(XIB)時,用代碼控制視圖內容,需要調用initWithFrame去初始化 
視圖加載nib文件,從nib中加載對象實例時, 使用 initWithCoder初始化這些實例對象

14、

loadNibNamed  動態加載視圖
NSArray *nibViews=[[NSBundle mainBundle] loadNibNamed:@"Empty" owner:self options:nil];   

15、

1)componentsSeparatedByString:截取指定字符串; 

2) pathForResource:獲取程序運行時目錄 
3)  objectAtIndex:獲取當前索引的字符串; 
4)  rangeOfString:獲取指定短字符串在長字符串中的開始,結尾索引值;
5) stringWithContentsOfFile:按行讀取文件 
6) componentsSeparatedByString:@"
"];換行分割字符串; 
7) NSEnumerator *nse = [lines objectEnumerator];        將數組轉換爲NSEnumerator,可向前讀取數據;
nextObject 讀取下一行數據

16、
-(BOOL) isKindOfClass: classObj判斷是否是這個類或者這個類的子類的實例 
-(BOOL) isMemberOfClass: classObj 判斷是否是這個類的實例 

17、
創建一個UIImageView對象有五種方法
UIImageView *imageView1 = [[UIImageViewalloc] init];
UIImageView *imageView2 = [[UIImageViewalloc] initWithFrame:(CGRect)];
UIImageView *imageView3 = [[UIImageView alloc] initWithImage:(UIImage *)];
UIImageView *imageView4 = [[UIImageView alloc] initWithImage:(UIImage *) highlightedImage:(UIImage *)];
UIImageView *imageView5 = [[UIImageView alloc] initWithCoder:(NSCoder *)];
常用的是前邊三個。

18、

UIScreen可以獲取設備屏幕的大小
UIView對象定義了一個屏幕上的一個矩形區域,同時處理該區域的繪製和觸屏事件,一個UIView的實例可以包含和管理若干個子UIView
UIWindow對象是所有UIView的根,管理和協調的應用程序
UIViewController對象負責管理所有UIView的層次結構,並響應設備的方向變化

19、
@class 當一個類需要引用另一個類 
demo.h  @class Rectangle;
demo.m import Rectangle

20、
UISwitch開關、
UIButton按鈕、
UISegmentedControl分段控件、
UISlider滑塊、
UITextField文本字段控件、
UIPageControl分頁控件

21、
UIControlEventTouchDown
單點觸摸按下事件:用戶點觸屏幕,或者又有新手指落下的時候。
UIControlEventTouchDownRepeat
多點觸摸按下事件,點觸計數大於1:用戶按下第二、三、或第四根手指的時候。
UIControlEventTouchDragInside
當一次觸摸在控件窗口內拖動時。
UIControlEventTouchDragOutside
當一次觸摸在控件窗口之外拖動時。
UIControlEventTouchDragEnter
當一次觸摸從控件窗口之外拖動到內部時。
UIControlEventTouchDragExit
當一次觸摸從控件窗口內部拖動到外部時。
UIControlEventToucUpInside
所有在控件之內觸摸擡起事件。
UIControlEventTouchUpOutside
所有在控件之外觸摸擡起事件(點觸必須開始與控件內部纔會發送通知)。
UIControlEventTouchCancel
所有觸摸取消事件,即一次觸摸因爲放上了太多手指而被取消,或者被上鎖或者電話da'duaUIControlEventTouchChanged

當控件的值發生改變時,發送通知。用於滑塊、分段控件、以及其他取值的控件。你可以配置滑塊控件何時發送通知,在滑塊被放下時發送,或者在被拖動時發送。
UIControlEventEditingDidBegin
當文本控件中開始編輯時發送通知。
UIControlEventEditingDidEnd
當文本控件中編輯結束時發送通知。
UIControlEventEditingChanged
當文本控件中的文本被改變時發送通知。
UIControlEventEditingDidOnExit
當文本控件內通過按下回車鍵(或等價行爲)結束編輯時,發送通知。
UIControlEventAlltouchEvents
通知所有觸摸事件。
UIControlEventAllEditingEvents
通知所有關於文本編輯的事件
UIControlEventAllEvents
通知所有事件。

22、
SUserDefaults用於存儲數據量小的數據,例如用戶配置。並不是所有的東西都能往裏放的,只支持:NSString,NSNumber, NSDate, NSArray, NSDictionary.

23、
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[defaults objectForKey:key]; 提取
[defaults setObject:item forKey:key]; 設置
[defaults removeObjectForKey:key]; 移除

24、
resignFirstResponder 觸發鍵盤隱藏

25、
UITabBarController通常作爲整個程序的rootViewController ,常見的創建地方就是在application delegate中的 applicationDidFinishLaunching:方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章