初學iOS----可視化編程storyBoard(創(chuàng)建,簡單操作,小技巧持續(xù)補充更新)

StoryBoard,俗稱sb,是iOS下可視化編程的方式之一,另一種是xib。
使用storyBoard可以方便快捷的拖拽視圖控制器,控件,設(shè)置根視圖控制器,并且可以直觀的看到位置大小,效果等,如果能熟練使用storyBoard,可以少寫很多代碼。
因為多storyBoard還沒怎么用過,這里只說單storyBoard,也就是Main.storyBoard。

![Uploading storyBoard-1_280278.gif . . .]
](http://upload-images.jianshu.io/upload_images/1803560-ef9bc50b0e120441.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如圖,主路口是可以直接拖動的,或者在某個視圖控制器上勾選。
如果想為視圖控制器A添加一個navigationController或者TabBarController,可以按照下圖方式設(shè)置:
下面是storyBoard的初始頁面:

storyBoard.png

注意,在添加之前先點擊A。
然后就可以在右下角往視圖控制器上拖想要的控件,不再詳細介紹

頁面間的跳轉(zhuǎn)

首先在storyBoard上拖拽第二個視圖控制器,和你創(chuàng)建的類一個類型


這樣就已經(jīng)和你創(chuàng)建的類關(guān)聯(lián)上了,storyBoardID就是相當于該頁面的唯一標識,而identifier是segue的標識符,會根據(jù)不同的segue標識符處理數(shù)據(jù)
如果在其他類里引入該類時,就需要用storyBoardID找到這個頁面,而不能重新創(chuàng)建初始化,以頁面跳轉(zhuǎn)為例,storyBoard之間的跳轉(zhuǎn)都使用如下方法:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"secondPush"]) {
        SecondViewController *secondVC = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]]instantiateViewControllerWithIdentifier:@"second"];
        secondVC.CustomLabel.backgroundColor = [UIColor cyanColor];
    }
   
}

這里的@“second”就是剛剛寫的storyBoardID.

自定義segue:

自定義segue步驟
步驟一 : 新建 個類繼承 UIStoryboardSegue
步驟 二: 選中前 個控制器,按住control鼠標 標輔助完成連線,選 擇custom。
步驟三: 選中 定義 segue,設(shè)置 segue的identifier 以及關(guān)聯(lián)類。
步驟四: 在 segue類里重寫perform方法(界 間跳轉(zhuǎn)默認執(zhí)行的方法), 自定義跳轉(zhuǎn)效果。

storyBoard.png
//重寫自定義方法
-(void)perform
{
    
//獲取源控制器:
    ViewController *sourceVC = (ViewController *)self.sourceViewController;
    
    
    //獲取目標控制器:
    SecondViewController *secondVC = (SecondViewController *)self.destinationViewController;
    
    //動畫效果
    //第一個參數(shù):源控制器的視圖
    //第二個參數(shù):目標控制器的視圖
    //第三個參數(shù):動畫持續(xù)的時間
    //第四個參數(shù):動畫樣式
    //第五個參數(shù):動畫完成之后進行的操作
    [UIView transitionFromView:sourceVC.view toView:secondVC.view duration:1 options:(UIViewAnimationOptionTransitionFlipFromTop) completion:^(BOOL finished) {
        //動畫完成之后進行的內(nèi)容
        [sourceVC.navigationController pushViewController:secondVC animated:YES];
        
    }];

}

StoryBoard約束:

storyBoard約束很簡單,點到想要約束的控件,然后點擊下面的按鈕

storyBoard.png

另外還有等高,等寬,等比例等約束,我個人比較喜歡直接用ctrl鍵按著控件拖:

storyBoard.gif

可以按照需要的比例進行調(diào)試。
如果想要清除已經(jīng)加的約束,可以進行如下操作

storyBoard.png

最后,放一個簡單的登錄頁面的效果圖(不是所有屏幕適配!!)

storyBoard.gif

storyBoard易坑點,小技巧(會補充更新,歡迎交流)

控件和關(guān)聯(lián)到頁面成屬性或方法之后,如果想刪掉,記得在storyBoard上也刪了

storyBoard-1.gif

tabBar,navigationBar,navigationItem設(shè)置圖片時,想讓圖片不被渲染:

storyBoard-1.gif

設(shè)置navigationBar的背景圖片,我在設(shè)置navigationBar的背景圖片時,發(fā)現(xiàn)直接在右側(cè)操作設(shè)置不行,查到的最簡單的方法就是在AppDelegate.m里寫一個方法:

 [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"bg_nav.png"] forBarMetrics:UIBarMetricsDefault];

即可,有大神知道直接設(shè)置背景圖片是哪里的問題的話請留言或私信,感謝?。。?!


如圖:


2.png

當按鈕的類型是System的時候,設(shè)置圖片是沒有反應(yīng)的,需要設(shè)置為custom,不過現(xiàn)在一般操作時會自動更換成custom

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容