溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Cocoa Touch 入門記——《精通 iOS 開發(fā)》學習心得(1)

發(fā)布時間:2020-07-19 22:12:44 來源:網(wǎng)絡(luò) 閱讀:783 作者:hzhowie 欄目:移動開發(fā)

首先是熟悉 Xcode 界面。因為這本書的 Xcode 版本并不是最新版,而我的 MacBook 上已經(jīng)裝了 Xcode 5.0,所以帶來了一些不便。Xcode 5.0 在創(chuàng)建 Single View Application 時會默認創(chuàng)建 Storyboard ,而這本書上剛開始是先用 xib 來做界面。剛開始我把 Storyboard 當做 xib 來用倒是影響不大,但是到了要連線的時候,書上說的 File's Owner 我就找不到了,而且到了后面做多界面的應(yīng)用時就一頭霧水。其他的操作問題不大,花幾天時間適應(yīng)之后就好了。不過由于從 Windows 轉(zhuǎn)到 Mac OS X 的時間并不久,我還不適應(yīng) Mac OS X 的快捷鍵操作,甚至連快捷鍵的圖標都不一定認得 ⊙﹏⊙ 。

【這不是一篇技術(shù)博客】

接下來就進入了基本交互的學習。我按照書上的方法寫了一個這樣的應(yīng)用程序:Cocoa Touch 入門記——《精通 iOS 開發(fā)》學習心得(1)


1.關(guān)閉鍵盤的方式


首先是兩個 Text Field 和兩個 Label 。這個并沒有多少技術(shù)含量,Label 雙擊即可改文字,而 Text Field 里灰色的文字則是在 Attributes inspector 里的 Placeholder 中更改。同時"Number:"對應(yīng)的 Text Field 的 Keyboard 改為 Number Pad 。 Bulid 之后點擊 Text Field 當然會彈出鍵盤,而下面我要實現(xiàn)的是點擊鍵盤右下角的 Done 關(guān)閉鍵盤,以及點擊 Text Field 以外的位置關(guān)閉鍵盤。

首先在ViewController.h里加入:

- (IBAction) textFieldDoneEditing:(id)sender;
- (IBAction) backgroundTap:(id)sender;

然后在ViewController.m里寫這兩個方法的實現(xiàn):

- (IBAction) textFieldDoneEditing:(id)sender {
    [sender resignFirstResponder];
}
- (IBAction) backgroundTap:(id)sender
{
    [_nameField resignFirstResponder];
    [_numberField resignFirstResponder];
}

添加完代碼之后還要打開 Connection inspector ,把 Did End On Exit 連到 File's Owner 上。


2.數(shù)值調(diào)節(jié)


接下來是中間那個 Label 和 Slider 。這兩個控件是用來實現(xiàn)將 Slider 的 Attributes inspector 中,Maximum 改為100,Minimum 最小改為0,Current 改為50。接下來是創(chuàng)建輸入輸出口。打開 Assistant editor ,按住 control 將 Slider 連線至 ViewController.h 的 @interface 與 @end 間的空白處,彈出窗口后類型選擇 Action ,命名為 sliderChanged 。用同樣的方法操作 Label ,但是直接使用默認設(shè)置 IBOutlet ,命名為 sliderLabel 。在 ViewController.m 中的相應(yīng)位置加入如下代碼:

-(IBAction)sliderChanged:(id)sender{
    UISlider *slider =(UISlider *)sender;
    int progressAsInt = (int)roundf(slider.value);
    _sliderLabel.text = [NSString stringWithFormat:@"%d", progressAsInt];
}

其實在這里我發(fā)現(xiàn)(并體驗)了一個 Objective-C 的特性。凡是在 @interface 里 @property 過的對象,可以使用_+對象名或者self.+對象名在各個方法的實現(xiàn)中調(diào)用。而@synthesize可以任意更改名字以便調(diào)用,但是在這本書里比較少用。如:

@synthesize a=_a;


3.簡易的分欄


接下來是下面的 Segmented Control 。同時添加兩個 Switch 和一個 Button 。把 Segmented Control 的兩欄分別改成"Switches"和“Button”,Button 名改為“Do Something”。在 Segmented Control 上現(xiàn)在需要實現(xiàn)的是:點擊“Switches”時顯示兩個 Switch 并隱藏 Button,點擊“Button”時顯示 Button 并隱藏兩個 Switch。先在 ViewController.h 中創(chuàng)建 Segmented Control 的 Action,命名為“toggleControls”。然后在 ViewController.m 的相應(yīng)位置加入如下代碼:

- (IBAction)toggleControls:(id)sender {
    if([sender selectedSegmentIndex] == 0){
        _leftSwitches.hidden = NO;
        _rightSwitches.hidden = NO;
        _doSomethingButton.hidden = YES;
    }
    else{
        _leftSwitches.hidden = YES;
        _rightSwitches.hidden = YES;
        _doSomethingButton.hidden = NO;
    }
}


4.開關(guān)聯(lián)動


接下來要實現(xiàn)的是兩個 Switch 的“聯(lián)動”,即同時開同時關(guān)。分別選中兩個 Switch,在 ViewController.h 中創(chuàng)建兩個輸出口(IBOutlet),分別命名為“l(fā)eftSwitches”和“rightSwitches”。左邊的開關(guān)用拖動的方式再添加一個名為“switchChanged:”的方法。在 ViewController.m 中添加如下內(nèi)容:

- (IBAction)switchChanged:(id)sender {
    UISwitch *whichSwitch = (UISwitch *)sender;
    BOOL setting = whichSwitch.isOn;
    [_leftSwitches setOn:setting animated:YES];
    [_rightSwitches setOn:setting animated:YES];
}


5.操作表和警報


這兩個東西其實應(yīng)該叫“Action Sheet”和“Alert View”會顯得不那么陌生。我們就以上面已經(jīng)創(chuàng)建的名為“Do Something”的 Button 為 Action Sheet 的觸發(fā)按鈕。在 ViewController.h 中創(chuàng)建一個此 Button 的 Action 方法,命名為“buttonPressed”。該方法的實現(xiàn)如下:

- (IBAction)buttonPressed:(id)sender {
    UIActionSheet *myActionSheet=[[UIActionSheet alloc]initWithTitle:@"標題" delegate:self cancelButtonTitle:@"取消鍵" destructiveButtonTitle:@"毀滅鍵" otherButtonTitles:@"額外加鍵", nil];
    [myActionSheet showInView:self.view];
                                                                                                                                                  
}

上面這段代碼中的藍色字可以任意更改成你喜歡的文字。效果如下:

Cocoa Touch 入門記——《精通 iOS 開發(fā)》學習心得(1)

接下來我們把“毀滅鍵”作為 Alert View 的觸發(fā)按鈕。只需要在 ViewController.m 中加入如下代碼即可:

-(void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    if (buttonIndex==[actionSheet destructiveButtonIndex]){
        UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"AlertView的標題" message:@"我是一個AlertView" delegate:self cancelButtonTitle:@"取消鍵" otherButtonTitles:@"隨手加", nil];
        [myAlertView show];
    }
}

效果如下:

Cocoa Touch 入門記——《精通 iOS 開發(fā)》學習心得(1)

當然你也可以自己做一做別的按鈕的觸發(fā)效果來玩。

【這不是一篇技術(shù)博客】

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI