關於iOS Tabbar的一些設定

來源:互聯網
上載者:User

標籤:false   sdn   .net   list   nsarray   obj   amp   迴圈   mod   

事實上iOS Tabbar的可定製性很高,我們沒有必要反覆造輪子,以下是筆者收集的一些tabbar的經常使用設定。希望對大家有所協助。

設定tabbar選中顏色

iOS7設定例如以下:

[self.tabBarController.tabBarsetSelectedImageTintColor:[UIColor greenColor]];

ios8中例如以下設定:

self.tabBar.tintColor=[UIColor greenColor];


消除tabbar邊框

在appdelegate的程式啟動處:

[[UITabBar appearance] setShadowImage:[[UIImage alloc]init]];

[[UITabBar appearance] setBackgroundImage:[[UIImage alloc]init]];


設定tabbar item原始表徵圖與原始選中表徵圖。而不是系統自己主動填充的顏色

    // 拿到 TabBar 在拿到想應的item    UITabBar *tabBar = _tabBarController.tabBar;    UITabBarItem *item0 = [tabBar.items objectAtIndex:0];    UITabBarItem *item1 = [tabBar.items objectAtIndex:1];    UITabBarItem *item2 = [tabBar.items objectAtIndex:2];    UITabBarItem *item3 = [tabBar.items objectAtIndex:3];    // 對item設定對應地圖片    item0.selectedImage = [[UIImage imageNamed:@"recognize-1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];;    item0.image = [[UIImage imageNamed:@"recognize"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];         item1.selectedImage = [[UIImage imageNamed:@"life-1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];;    item1.image = [[UIImage imageNamed:@"life"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];         item2.selectedImage = [[UIImage imageNamed:@"edit-1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];;    item2.image = [[UIImage imageNamed:@"edit"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];         item3.selectedImage = [[UIImage imageNamed:@"setting-1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];;    item3.image = [[UIImage imageNamed:@"setting"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];


設定tabbar背景圖片

    UIView *backView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, Main_Screen_Width, 49)];    backView.backgroundColor = [UIColor redColor];    [self.tabBar insertSubview:backView atIndex:0];    self.tabBar.opaque = YES;


設定tabbar item選中時的背景圖片

1、5.0以上版本號碼
     

self.tabBar.selectionIndicatorImage = [UIImage imageNamed:@"system_tabbar_item_selected.png"];

2、5.0下面版本號碼
     首先實現例如以下方法:
- (void)setNoHighlistTabBar:(UITabBarController *)tabBarController{    NSArray * tabBarSubviews = [tabBarController.tabBar subviews];       int index4SelView;       if(tabBarController.selectedIndex+1 > 4)    {//selected the last tab.        index4SelView = [tabBarSubviews count]-1;    }    else if([tabBarController.viewControllers count] > 5)    {//have "more" tab. and havn‘t selected the last tab:"more" tab.                      index4SelView = [tabBarSubviews count] - 5 + tabBarController.selectedIndex;    }    else    {//have no "more" tab.                      index4SelView = [tabBarSubviews count] -        [tabBarController.viewControllers count] + tabBarController.selectedIndex;    }    if([tabBarSubviews count] < index4SelView+1)    {        assert(false);        return;    }    UIView * selView = [tabBarSubviews objectAtIndex:index4SelView];       NSArray * selViewSubviews = [selView subviews];       for(UIView * v in selViewSubviews)    {        if(v && [NSStringFromClass([v class]) isEqualToString:@"UITabBarSelectionIndicatorView"])               {//the v is the highlight view.            [self.selectedItemBgImageView removeFromSuperview];            [selView insertSubview:self.selectedItemBgImageView belowSubview:v];                       [v removeFromSuperview];                                  break;        }    }}


  改方法的實質就是迴圈tabBar的subViews, 找到tabBar中的這個view, 是一個UITabBarSelectionIndicatorView的view,然後把它替換成你自己建立的UIImageView, 上例中的self.selectedItemBgImageView.
  然後須要把UITabBarController的delegate設為self, 在tabBarController:didSelectViewController的代理方法中運行上面的方法:[self setNoHighlistTabBar:self];
 還有setSelectIndex:方法中也要運行[self setNoHighlistTabBar:self];


關於iOS Tabbar的一些設定

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.