常常看到各种 iPhone App 拥有非原本 iOS SDK 的官方 UI 外观。在自己要硬写的时候发现,自己写 TabBarController 的成本好像划不来,因此想到一个小撇步,直接用自己设计的 TabBar 盖掉原本 TabBar 
的 View,因此某天便花了半小时想说动手做看看。以下记录自定 TabBar View 盖过原本 TabBar 但又不失 TabBarController 功能的方法。

在 UIApplication 中加入:

[self.tabBarController.tabBar.superview.addSubview: fakeTabBG];
[self.tabBarController.tabBar.superview addSubview: fakeTab];
[self.tabBarController.tabBar.superview addSubview: fakeNavBar];

在自制的 fakeTabItem (TabBar 下面的 Tab,其实是以 UIButton 实作)

[fakeTabItem4 addTarget:self action:@selector(tabItemPressed:) forControlEvents:UIControlEventTouchUpInside];

每个 Tab Button trigger 原生 tabBarController
- (void)tabItemPressed: (UIButton *) sender
{
    nowTabIndex = [[[NSNumber alloc] initWithInteger: sender.tag] intValue] -1;
    self.tabBarController.selectedIndex = nowTabIndex;
    [self chkPressed];
}

大致即可完成,如图:

Screen Shot 2011-11-14 at 3.44.56 PM.png   Screen Shot 2011-11-14 at 3.44.28 PM.png  

 

Customized UI影片

 

By DK Tai-Wei Kan

这边顺便 bookmark 一下一个不错的 iOS UI Patterns 网站,他搜集了不少自定义 iOS UI 的案例:http://pttrns.com/

相关文章