ios UITabBarController和Block塊語法

標籤視圖控制器 - UITabBarController
自定義UITabBarItem
自定義導航欄和標籤欄背景圖片
三個視圖控制器的綜合使用


一. 標籤視圖控制器  UITabBarController
UITabBarController有以下重要屬性
viewControllers   顯示的視圖控制器
tabBar                  標籤欄
delegate                協議

tabBar 是 UITabBar對象, 包含多個UITabBarItem, 每個tanBarItem對應一個viewController. tabBar高度爲49

當tabBarItem超過五個時, 系統會自動增加一個更多按鈕,點擊更多按鈕,沒有在底部出現的那些按鈕會以列表形式顯示出來

UIAppearance
如果想通過一鍵設定所有導航視圖控制器的顏色,類似於QQ的一鍵換膚操作, 可以通過UIAppearance協議來進行操作, 通過它可以對一些控件進行自定義顏色等

總結
UITabBarController是項目開發中常見的佈局樣式,與UINavigationController不同,它的viewController都是並列的,而UINavigationController的則是層次性的

UITabBatController,UINavigationController和UITableViewController,通常都是組合出現,這種佈局方式特別常見,一定要熟練應用

UITabBarController可以嵌套UINavigationController

UINavigationController也可以嵌套UITabBatController




IOS  Block用法
在IOS中,定義 用" ^ "來表明block變量, 內容是包含在" {}"中的,並且和C語言一樣,用" ; "來表示語句的結束

int multiplier = 7;

int (^myBlock)(int) = ^(int num){return num * multiplier; };

"^"聲明這是一個block, "myBlock"爲變量名

block返回值類型爲int類型

int 爲參數類型

等號前爲聲明  =  等號後是實現

等號後以^開始

int num 爲參數 和 參數名

{實現 方法;};

//調用塊語法的時候纔會走
-(void)testFirstBlock
{
    //無參數無返回值類型的Block
    void (^myBlock)() = ^(){
        NSLog(@"走了");
    };
    //調用
    myBlock();
    
}


-(void)testSecondBlock
{
    //無參數有返回值類型的Block
    void(^myBlock)(NSString *) = ^(NSString * name){
        NSLog(@"name == %@",name);
    };
    
    myBlock(@"aaaa");
}


-(void)testThirdBlock
{
    //多個參數  順序必須前後一致
    void(^myBlock)(NSString *,int) = ^(NSString * name,int age){
        NSLog(@"name === %@",name);
        NSLog(@"age == %d",age);
    };
    
    myBlock(@"aa",7);
}

-(void)testForthBlock
{
    //有參數有返回值類型的Block
    int(^myBlock)(NSString *,NSInteger) = ^(NSString * value,NSInteger num){
        
        //字符串轉化成int類型
        int strValue = [value intValue];
        
        return strValue+num;
    };
    
   int a = myBlock(@"15",5);
    
    NSLog(@"a === %d",a);
}





Block注意事項

由於block所創建的變量分爲兩個內存區域,分別是全局區和棧區,因此在IOS中如果使用block的成員變量或者屬性時,需要將其copy到堆內存中.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章