【GeekBand】Week3. iOS應(yīng)用開發(fā)實(shí)戰(zhàn)記錄(1)

紙上得來終覺淺,絕知此事要躬行

本周筆記綜合課堂的學(xué)習(xí),主要圍繞第一周作業(yè)的過程、遇到的問題以及解決辦法進(jìn)行記錄。

一、需求分析


  1. 用戶需求(勉強(qiáng)算是吧)
    用戶可以輸入自己的名字,并在屏幕上打招呼,并可以清除消息文字

  2. 練習(xí)

  • storyboard的用法
  • lable,textfield,button,image控件的用法
  • 從txt中讀取文字
  • 通過代碼創(chuàng)建button

二、項(xiàng)目設(shè)計(jì)


  1. 簡(jiǎn)易流程圖


    流程圖
  2. 界面設(shè)計(jì)


    哎呀我摔倒了_(:зゝ∠)_

三、編碼


  1. 界面


  • lable
    顏色字體字號(hào)居中什么的都在這里設(shè)置



  • Text Field
    同樣在此處對(duì)上述屬性進(jìn)行處理



    需要注意的是

Placeholder屬性

用于簡(jiǎn)單提示,用戶看一眼就能明白的不需要一直看著的一般用在此處

Clear Button屬性

用戶輸入之后右邊會(huì)有一個(gè)灰色的叉叉用于清除輸入的文字,這里就是設(shè)置這個(gè)清除按鈕什么時(shí)候出現(xiàn)的
Clear when editing begins,顧名思義,是否在每次用戶輸入時(shí)都清空textfield

  • button



Type & State Config屬性

這里的Type以及State Config有多種選擇,分別對(duì)應(yīng)不同的按鈕樣式和狀態(tài)


Image & Background屬性

這里我采用將按鈕設(shè)為圖片的方法來進(jìn)行美化,就在image處設(shè)置,分別對(duì)Default和Highlighted狀態(tài)設(shè)置圖片達(dá)到我想要的效果
Background可以將背景設(shè)為圖片同時(shí)存在按鈕文字
大家可根據(jù)不同美化需要來選擇~

  • image
    提到按鈕美化就來簡(jiǎn)單說一下圖片吧~
    直接在這里把需要的圖片拖進(jìn)來即可


AppIcon

里面是應(yīng)用程序圖標(biāo)設(shè)置,在需要的地方分別拖一張合適的圖片進(jìn)去就可以了
我對(duì)圖片處理不是很在行又不想直接用老師的圖片,所以這里就沒做啦_(:зゝ∠)_

  1. 內(nèi)部實(shí)現(xiàn)
    上面提到的部分都是直接在storyboard中和ViewController.m直接聯(lián)系起來的,下面是直接通過代碼實(shí)現(xiàn)的部分,即從txt中讀取文字以及在打招呼按鈕響應(yīng)代碼里創(chuàng)建清除消息文字按鈕
  • 過程中已解決的問題(具體解決方法去代碼里找啦!都注釋出來了)
    • 讀取的txt文件要添加到工程里,否則url取不到
    • 如何將txt中內(nèi)容讀取到數(shù)組中
    • 如何取隨機(jī)數(shù)arc4random_uniform
    • 如何用代碼創(chuàng)建button并響應(yīng)
    • 如何防止重復(fù)創(chuàng)建,這里我使用的是BOOL類型的實(shí)例變量(也許這里也可以通過tag控制?),大家還有什么好方法也可以交流一下
    • 創(chuàng)建時(shí)不能忘記setTitleColor,居然默認(rèn)是白色_(:зゝ∠)_
    • 設(shè)置屬性時(shí)一定要加上forState:,button是有好多種狀態(tài)的
    • button的顯示與隱藏
    • 通過tag訪問button
    • button創(chuàng)建后要設(shè)置顯示
  • 未解決問題
    • 如何收回鍵盤,如何取消textfield焦點(diǎn)
    • 單元測(cè)試忘記啦!_(:зゝ∠)_
3. 以下就是主要代碼啦~
/* 打招呼 */
- (IBAction)greeting:(id)sender {
    
    /* 獲取greeting.txt路徑 */
    NSURL* url = [[NSBundle mainBundle] URLForResource:@"greeting"
                                         withExtension:@"txt"];
    
    /* 讀取文件,utf-8編碼,放入NSArray中 */
    NSString* txtString =
    [NSString stringWithContentsOfURL:url
                             encoding:NSUTF8StringEncoding
                                error:nil];
    NSArray* greetingArray = [txtString componentsSeparatedByString:@"\n"];
    NSInteger idx = arc4random_uniform((u_int32_t)greetingArray.count);
    NSString* greetingString = greetingArray[idx];
    
    /* 界面顯示 */
    if (self.nameField.text.length > 0) {
        self.messageLable.text = [NSString stringWithFormat:@"%@: %@",
                                  self.nameField.text,
                                  greetingString];
    }
    
    /* 創(chuàng)建清除按鈕,已創(chuàng)建時(shí)顯示或隱藏 */
    if (![self.messageLable.text isEqualToString:@"哎呀喵小扣摔倒了_(:зゝ∠)_"]) {
        if (!_clearButtonExist) {
            [self createButton];
        }
        else {
            UIButton* button = [self.view viewWithTag:999];
            button.hidden = NO;
        }
    }
}

/* 創(chuàng)建按鈕 */
- (void)createButton {
    UIButton* clearButton = [[UIButton alloc] init];
    clearButton.tag = 999;
    clearButton.frame = CGRectMake(120, 128, 80, 30);
    [clearButton setTitle:@"不理她了" forState:UIControlStateNormal];
    [clearButton setTitleColor:[UIColor blueColor]
                      forState:UIControlStateNormal];
    /* 響應(yīng) */
    [clearButton addTarget:self
                    action:@selector(clearMessage:)
          forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:clearButton];
    _clearButtonExist = YES;
}

/* 清除消息文字,同時(shí)隱藏清除按鈕 */
- (IBAction)clearMessage:(id)sender {
    self.messageLable.text = @"哎呀喵小扣摔倒了_(:зゝ∠)_";
    UIButton* button = [self.view viewWithTag:999];
    button.hidden = YES;
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容