第十四章 可視化StoryBoard
1.Xib和StoryBoard的對(duì)比
相同點(diǎn):都屬于IB編程的方式梅惯,可以快速構(gòu)建GUI胎挎。
不同點(diǎn):xib側(cè)重于單文件(單獨(dú)的控制器或者視圖)編輯后裸,storyBoard側(cè)重于多頁(yè)面關(guān)聯(lián)。storyBoard可以直觀的梳理出頁(yè)面間的邏輯因谎,并且所有頁(yè)面跳轉(zhuǎn)邏輯均可在- (void)prepareforSegue:(UIStoryBoardSegue*)segue:(id)sender方法完成繁仁,方便界面間數(shù)據(jù)統(tǒng)一管理
2.注意事項(xiàng):不需要手動(dòng)創(chuàng)建window,只需將創(chuàng)建好的StoryBoard在應(yīng)用程序配置General中設(shè)置為Main Interface
3.我們可以通過(guò)選中控制器缰猴,修改 (is initial View Controller)氛琢,或者直接移動(dòng)表示程序入口的箭頭
4.利用StoryBoard繪制自定義單元格
1.創(chuàng)建自定義cell是選中左側(cè)TableViewCell
2.繪制自定義UI界面
3.設(shè)置重用標(biāo)識(shí)符
4.將storyBoard文件關(guān)聯(lián)至對(duì)應(yīng)的UITableViewControll'er和UITableViewCell子類(lèi)(自己創(chuàng)建的類(lèi))
5.在UITableViewController中完成代碼書(shū)寫(xiě):設(shè)置section和row數(shù)量喊递,設(shè)置cell,根據(jù)實(shí)際情況調(diào)整cell的高度
6.注意:cell不再需要注冊(cè)
5.StoryBoard頁(yè)面跳轉(zhuǎn)分為兩種
1.代碼方式:使用代碼通過(guò)控制器標(biāo)識(shí)來(lái)跳轉(zhuǎn)阳似。比如在當(dāng)前頁(yè)面的某一個(gè)事件中跳轉(zhuǎn)到一個(gè)標(biāo)示為“customVC”的控制器頁(yè)面中:[self performSegueWithIdentifier:@"customVC" senderL:nil];
2.連線方式:直接使用拖拽可以給按鈕連線關(guān)聯(lián)兩個(gè)頁(yè)面:選中按鈕骚勘,按住control,從按鈕向下一級(jí)頁(yè)面連線,按鈕不需要添加響應(yīng)方法
3.方式:
push:push出下個(gè)界面
modal:模態(tài)出下個(gè)界面
custom:自定義俏讹,需要我們自己實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)当宴,需要自定義segue
6.segue:可視化編程中連接兩個(gè)頁(yè)面的線條,稱(chēng)為segue
1.iPhoneGUI開(kāi)發(fā)中類(lèi)型主要有三種泽疆,包括push户矢、modal、custom
2.其中custom需要我們自定義segue來(lái)完成頁(yè)面間跳轉(zhuǎn)
3.segue有三個(gè)重要屬性:標(biāo)識(shí)符殉疼,源控制器梯浪,目標(biāo)控制器
7.自定義segue
1.新建一個(gè)類(lèi)繼承于UIStoryboardSegue
2.選中前一個(gè)控制器,按住control鼠標(biāo)輔助完成連線株依,選擇custom
3.選中自定義segue驱证,設(shè)置segue的identifier以及關(guān)聯(lián)類(lèi)
4.在segue類(lèi)里面重寫(xiě)perform方法(界面間跳轉(zhuǎn)默認(rèn)執(zhí)行的方法)延窜,自定義跳轉(zhuǎn)效果
- (void)perform{
//獲取源控制器
UIViewController *v1 = (UIViewController*)self.sourceViewController;
//獲取目標(biāo)控制器
UIViewController *v2 = (UIViewController*)self.destinationViewController;
//自定義頁(yè)面切換效果
[UIView transitionFromView:v1.view toView:v2.view duration: 10 options:UIViewAnimationOptionTransitionCurlDown completion:^(BOOL finished) {
//動(dòng)畫(huà)完成后執(zhí)行的部分
???????????????????? }];
}
8.界面?zhèn)髦? storyboard界面間跳轉(zhuǎn)會(huì)執(zhí)行
- (void)prepareForSegue:(UIStoryboardSeugue*)segue sender:(id)sender方法恋腕,方便界面間數(shù)據(jù)統(tǒng)一管理。
依據(jù)不同的segue標(biāo)識(shí)符來(lái)完成數(shù)據(jù)處理
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
CustomViewController *customVC = (CustomViewController*)segue.destinationViewController;
if ([segue.identifier isEqualToString:@"push"]) {
customVC.tempString = self.textField.text;
}else{ NSLog(@"其他情況處理??????????????????");
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者