iphone新手上路: KVC模式和iPhone基本控件的使用

MVC是一種設計模式,所謂設計模式就是解決某一特定問題的方案。

MVC是解決具有UI的應用系統的成熟解決方案,在Cocoa應用系統中嚴格按照該模式實現。

M-Model(模型)是應用系統中與視圖對於部分的數據。

V-View(視圖)是應用系統中用戶看到並與之交互的界面。

C-Controller(控制器)是應用系統中起到控制器作用,接受用戶事件,顯示數據等,與視圖進行交互等。

採用MVC設計模式意味着,Interface Builder不需要編寫或生成任何代碼,您只需專注於應用程序的視圖。MacCocoa綁定消除了大部分的黏合代碼,它就像連接在Xcode編寫的控制器和Interface Builder設計的視圖之間的一條線,用圖形化的表示方法簡化了二者之間的關係。

 

視圖控制器的方法:

-(id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle*)nibBundleOrNil

//如果視圖使用NIB文件創建,在加載視圖之前調用這個方法,做一些初始化處理。

 

-(void)viewDidLoad

//視圖加載時候調用這個方法,一般不使用NIB文件創建視圖時候使用,而是通過代碼創建視圖對象。

 

-(void)viewDidLoad

//視圖加載之後調用此方法,常常在這個方法中做視圖初始化。

 

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

 //用於處理屏幕旋轉的方法。

 

-(void)didReceiveMemoryWarning

//當系統內存告警的時候,調用的方法,一般在這個方法中釋放一些耗費資源的對象。

 

-(void)viewDidUnload

//視圖對象卸載的時候調用的方法,一般在把內存視圖中屬性設置爲nil的。

 

-(void)dealloc

//視圖對象內存釋放時候調用此方法,釋放成員變量。

 

使屏幕上的鍵盤消失的方法  小結:

1)  定義一個IBAction方法,在這個方法中,讓文本框放棄第一響應者,([textField resignFirstResponder],然後將View的父類由UIView改成UIControll,在file’s owner中連線,選擇UIControll中的Touch Down方法即可。

2)  讓所定義的類遵循<UITextFieldDelegate>協議,在實現文件中寫上-(BOOL)textFieldShouldReturn:(UITextField*)textField{

 [textField resignFirstResponder];  }, 然後將文本框的delegate連接到file’s owner上,即可點擊鍵盤上的Return鍵達到鍵盤消失的目的。

       以後學習到新的可以讓鍵盤消失的方法,再補充。

二、控件的講解

       1)、UIAlertView(對話框)控件

              UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@”title” message:@”message” delegate:self cancelButtonTitle:@”cancel”,otherButtonTitles:@”other1”,@”other2”,@”ohter3”,nil];

              [alertView show];

              [alertView release];

       這樣當對話框被觸發的時候,就會顯示出來,其中如果類遵從<UIAlertViewDelegate>協議,對話框中的按鈕就會有實際效果,通過協議中的 –(void)alertViet:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 這個方法就可以對對話框中的按鈕進行相應的操作,其中cancelindex0,其他other1other2other3,等按鈕的index一次爲1,2,3

       當對話框消失的時候會調用:-(void)alertView:(UIAlertView*)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;

 

       2)UIActionSheet(下拉按鈕)控件

              UIActionSheet* actionsheet = [[UIActionSheet alloc] initWithTitle:”title” delegate:self cancelButtonTitle:@”cancel” destructiveButtonTitle:”destructive” otherButtonTitles:@”other1”,@”other2”,@”other3”,nil];

              [actionsheet showInview:self.view];

              [actionsheet release];

       爲了使用ActionSheet控件,需要在.h文件中遵循UIActionSheetDelegate協議,常常要實現actionSheetdidDismissWithButtonIndex方法,該方法時ActionSheet消失的時候調用。destructiveindex0other1index1cancelindex是最後一個。

 

       3)、等待有關控件UIActivityIndicatorView  (指示器)控件

              使用方法是:在.h文件中聲明屬性和IBOutlet接口,在file’s owner中進行連線,常用的方法是:-(BOOL)isAnimating;   //是否正在轉動

                       -(void)startAnimating;  //開始轉動

                       -(void):stopAnimating;  //停止轉動

       4)、等待有關控件UIProgressView  (進度條)控件

              使用方法是:在.h文件中聲明屬性progressViewIBOutlet接口,在file’s owner中進行連線,需要使用定時器(NSTimer),NSTimer是可以隱式的啓動一個線程,類方法scheduledTimerWithTimeInteval指定線程要休眠多少時間調用一次,selector所指定的方法是要調用的方法,進度條有一個屬性是progress,表示的是進度條的值,下面看一個具體的實例:

       timer = [NSTimer scheduledTimerWithTimeInteval:1.0f target:self selector:@selector(update) userInfo:nil repeats:YES];

-          (void)update

{

          progressView.progress +=1;

          if(progressView.progress == 1)   [timer invalidate];

}

UIProgressView控件的proress屬性是0.0 ~ 0.1範圍,0.0是開始的位置,1.0是結尾。

   5)、開關控件

          UISwitch(開關控件)在.h文件中聲明屬性switch1IBOutlet接口,它有一個on屬性和isOn方法,表示開關當前的狀態,(YES或者是NO)。

          UISlider(滑塊控件)在.h文件中聲明屬性sliderIBOutlet接口,常用的有三個屬性值value(表示當前滑塊的值)、maximumValue(滑塊的最大值)、minimumValue(滑塊的最小值)。滑塊值得取值範圍是0.0 ~ 1.0

   6)、分段控件  UISegmentedControll

          通過其屬性值selectedSegmentIndex來判斷所選的是哪一段,從0開始。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章