UITabBarController相關知識

weixin_34189116發表於2016-11-23
UITabBarItem的相關屬性

<pre>
// 通過appearance統一設定所有UITabBarItem的文字屬性
// 後面帶有UI_APPEARANCE_SELECTOR的方法, 都可以通過appearance物件來統一設定
UITabBarItem *item=[UITabBarItem appearance];
//設定tabaritem的正常情況下的屬性
NSMutableDictionary *textArr=[NSMutableDictionary dictionary];
textArr[NSForegroundColorAttributeName]=[UIColor redColor];//文字顏色
[item setTitleTextAttributes:textArr forState:UIControlStateNormal];
</pre>

設定UITabBarItem的圖片和文字title

<pre>
//設定文字
childVc.tabBarItem.title=title;
// 設定子控制器的圖片
childVc.tabBarItem.image = [UIImage imageNamed:image];
// //使用指定渲染模式---總是繪製原始影象,而不將它視為模板(搞掉系統預設)
childVc.tabBarItem.selectedImage = [[UIImage imageNamed:selectedImage] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
</pre>

UITabBarController代理
1.是否允許選擇不同item觸發後續操作,YES 允許,NO不允許

<pre>

  • (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
    {
    NSLog(@"hello");
    return YES;
    }
    </pre>
2.每次點選tabBarItem後觸發這個方法(只有點選標籤欄中的五個按鈕才會觸發,MORE裡邊的不會觸發)

<pre>

  • (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
    {

    NSLog(@"%@!",viewController.title);
    }
    </pre>

3.當點選moreNaviegationController中的編輯按鈕時觸發的方法

<pre>

  • (void)tabBarController:(UITabBarController *)tabBarController willBeginCustomizingViewControllers:(NSArray *)viewControllers
    {
    NSLog(@"biaji");
    }
    </pre>
4.當點選完成按鈕的時候,觸發此方法

<pre>
//changed : 標記viewController的順序是否改變
//ViewControllers 返回最新的tabBarController中viewControllers

  • (void)tabBarController:(UITabBarController *)tabBarController willEndCustomizingViewControllers:(NSArray *)viewControllers changed:(BOOL)changed NS_AVAILABLE_IOS(3_0)
    {
    if(changed)
    {
    NSLog(@"change@");
    }
    else
    {
    NSLog(@"not change");
    }

    for(UIViewController *vc in viewControllers)
    {
    NSLog(@"%@",vc.title);
    }
    }
    </pre>

常用的事件UIControlState

UIControlStateNormal 正常狀態
UIControlStateHighlighted 高亮狀態
UIControlStateDisabled 不可點選狀態
UIControlStateSelected 選中狀態

常見的屬性及說明(富文字屬性)

NSFontAttributeName 字型

NSParagraphStyleAttributeName 段落格式

NSForegroundColorAttributeName 字型顏色

NSBackgroundColorAttributeName 背景顏色

NSStrikethroughStyleAttributeName 刪除線格式

NSUnderlineStyleAttributeName 下劃線格式

NSStrokeColorAttributeName 刪除線顏色

NSStrokeWidthAttributeName 刪除線寬度

NSShadowAttributeName 陰影