2013年4月16日 星期二

[Xcode] 初學者筆記(二)

開發的程式總算提交給Apple審核,等待審查結果之餘,來將開發過程中所查到的一些資料與技巧記錄下來,方面下個App更能快速完成。



1. 如何讓虛擬鍵盤消失?

當我們在Storyboard上加入UITextField,可以為此文字框設定跳出何種虛擬鍵盤。在keyboard屬性設定中可以是Default(有文字有數字)、Number Pad(僅有數字)以及其他電話專用或是E-mail專用的鍵盤。但當輸入完畢希望礙眼的鍵盤消失,一般書上介紹的方式都是按下鍵盤上的Return鍵來關閉虛擬鍵盤,其方法如下:

    1. 先在.h檔底下宣告一種可以讓storyboard看得到的函式
        -(IBAction) 函式名稱:(id)sender;
   //函式名稱可以叫做removeKeyboard,或是其它任意名字

    2. 在.m檔底下實現此函式,重點是要在裡面呼叫能讓鍵盤消失的函式
        -(IBAction) 函式名稱:(id)sender
        {
            [UITextField名稱 resignFirstResponder];
        }

    3. 接著在Storyboard將UITextField其Sent Events下的"Did End On Exit"拉藍線與此函式名稱連結起來

這方法不錯用,但僅限於有Return鍵的虛擬鍵盤。像Number Pad或是Phone Pad就沒有Return鍵供使用者點擊,使用者的習慣是點選文字框以外的地方嘗試關閉鍵盤,所以得使用另一種方法來解決此問題。此方法就是加一個和螢幕一樣大的按鈕,讓此按鈕藏到最下層使用者看不到的地方,當使用者點擊文字框以外的區域時,就會觸發此隱藏按鈕,所以我們要做的是將上面提到步驟2裡面所呼叫的函式加近點擊隱藏按鈕所觸發的函式裡面:

    1. 先在Storyboard的Control View上加入一個UIButton按鈕並透過拖拉方式將其放大至與此Control View一樣大小

    2. 同上面步驟1和步驟2

    3. 在Storyboard上將UIButton其Sent Events下的"Touch Down"拉藍線與此函式名稱連結起來

    4. 將按鈕隱藏的方法是在文字框與按鈕之間放入一個UIImageView,讓ImageView擋住按鈕。若不打算加ImageView的話,還有另個方式就是調整UIButton的透明度,將按鈕的Alpha屬性改為0.1,0.1還是可以隱約看到按鈕,但如果小於0.1,雖然看不到按鈕,可是卻也無法執行按鈕該有的功能。
像這樣按鈕Button - 6和文字框TextField - 300中間夾個Image View,越上面代表越下層,押著Button - 6拖曳即可改變其圖層位置。



2. 如何判定檔案是否存在?

必須使用xcode裡面的檔案管理函式來實現

    NSString *homePath = NSHomeDirectory();
    NSString *filePath = [homePath stringByAppendingPathComponent:@"Documents/a-pen.jpg"];
    if([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
        //有找到圖片檔
    }
    else {
        //沒找到圖片檔
    }



3. 如何在Navigator Bar上產生有方向性的按鈕?

透過Storyboard可以輕鬆建立一個按鈕並且將此按鈕拉線接到另一個Control View,然後選擇Modal的屬性,就能在按下按鈕時進行換頁動作。問題是如果今天你原本的Control View是歸Tab Bar Controller所控制,則此種換頁方式將會導致下面的Tab Bar消失,如下圖。

Navigator Bar可以幫忙解決此問題,首先得讓Tab Bar其中一個選項指到Navigator Controller。而Navigator Controller後端可以接Table View,也可接一般Control View。

上圖最右邊的Table View才是點選Tab之後才會看到的畫面。再來依照下圖在Table View新增一個Button(不論用自創Button、Navigator Bar上的Button、或是Table Item都是一樣的做法),接著新增欲換頁的對象,這裡以Control View為例,再來是在此Control View上新增Navigator Item。最後是將Button以"Push"屬性連接此Control View。

於是執行時,點選Push Button換頁後,可以看到上方有個退回鍵,其名稱等同於前一頁的標題。



4. 如何將截圖的空白處清除變成完全透明?

Apple OS提供可選取的截圖方式:command鍵 + shift鍵 + 數字鍵4。所截取下來的圖如果有白色的地方還是得經過一道手續,套用到UIImageView上才能真的是透明的。有個很不錯的線上工具pixlr.com/editor。使用此工具載入存在個人電腦上的截圖後,可以看到右邊有個表示圖層的框框,必須對此框框內縮圖旁的鎖連點兩下才能解鎖。


接著選擇魔棒工具,然後點選空白處,接著按delete鍵就可以刪除,刪除後的區域會變成棋盤格紋。最後再按control鍵+S鍵,或是點選上面選單"文件"->"保存"即可。


沒有留言:

張貼留言