剛接觸ios開發不到10天,只寫了一些後台的邏輯**,對objective-c和cocoa touch的api有點感覺了。不過今天開始嘗試用storyboard開發ui,還是不太習慣,本文簡單記錄一下
ios中乙個頁面稱為乙個scene,一般就對應乙個viewcontroller,或者乙個xib檔案。而storyboard則是把應用中的scene都串聯起來。乙個viewcontroller下面一般只會有乙個view的層次結構,構成了應用的ui
我不知道以前開發ios是怎麼做的,可能也需要寫**來初始化viewcontroller吧。不過今天用storyboard來開發,似乎不需要,storyboard會隱式地建立和初始化配置的viewcontroller,以及viewcontroller下面掛的所有view元件
所以一般不需要寫這樣的**:
- (void)viewdidload
總的來說,ui的開發可以在storyboard裡通過圖形化介面來完成。不過在需要的時候,也可以編碼來實現,不過ui的api我還不太熟
雖然storyboard自動建立了view元件,但是**裡還是需要拿到它們的引用才可以。在android裡經常可以看到這樣的**:
mobilenumberlayout = (linearlayout) findviewbyid(r.id.mobilenumberlayout);
sendvalidatecodetv = (textview) findviewbyid(r.id.sendvalidatecode);
主要就是findviewbyid這個api,在ios開發裡不需要這樣呼叫,view在controller裡的引用有個術語稱為iboutlet,只要在storyboard裡拉線,就可以直接引用了:
// 重新整理進度條和文字
- (void) refreshprogressto: (float)stage withcontent:(nsstring*)content
這點我覺得還是挺方便的,要善用storyboard裡的connections inspector面板,裡面會顯示有哪些outlet,action,segue等,很方便
最後是怎麼響應ui事件,比如按鈕按下,文字框內容變化等……
在android裡比較類似html裡的寫法,有onclick之類的。在ios裡也差不多,主要是target-action模型。view controller稱為target,然後可以設定各種action。而view會發出event,可以配置event會觸發target上的哪個action
action的函式必須是這種格式:
-(ibaction) dosomething:(id*) sender
然後在storyboard裡就會識別出這是個action,可以通過拉線跟view的event關聯起來
如果不用storyboard的話,也一樣是這個模式,只不過需要自己寫**註冊action和event的關聯關係,方法是在uicontrol中定義的:
-(void)addtarget:(id)target action:(sel) forcontrolevents:(uicontrolevents)controlevents
舉例:
[self.btncooking addtarget:self action:@selector(presscooking:) forcontrolevents:uicontroleventtouchupinside];
上面這段**,當btncooking發出touchupinside事件時,就會呼叫controller上的presscooking函式(@selector在oc中就是方法的意思)
既然能拿到view的引用,又能設定action,那基本就什麼都能做了。有些功能用storyboard來實現還是不錯的,特別是auto layout似乎挺多人都說挺好。不過也要熟悉ios ui相關的api,在必要的時候才能編碼來實現
IOS學習 無storyboard開發
這其實是個挺有意思的內容,廢話不多說,進入正題 然後就會看到xcode為我們建立了如下檔案。這裡我們直接吧兩個帶有storyboard字尾的檔案delete掉,然後執行 當然這裡是會報 修改其中乙個函式如下 self.window uiwindow alloc initwithframe uiscr...
IOS 開發中 storyboard 使用
storyboard 使用 1 建立 storyboard 檔案 及與之相對應的 controller 和delegate 檔案 new file ios user inte ce storyboard 輸入對應的storyboard 名字建立 storyboard 檔案 2 在storyboard...
IOS開發 xib和storyboard的混用
1.從xib的viewcontroll中啟動storyboard 或者 從乙個storyboard切換到另乙個storyboard ibaction openstoryboard id sender 2.從storyboard切換到xib loginviewcontroller loginviewc...