扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
项目开发过程中,在完成iOS项目——项目开发环境搭建之后,我们首先需要考虑的就是我们的项目的整体框架与导航架构设计,然后在这个基础上考虑功能模块的完成。
创新互联成都企业网站建设服务,提供网站建设、网站设计网站开发,网站定制,建网站,网站搭建,网站设计,自适应网站建设,网页设计师打造企业风格网站,提供周到的售前咨询和贴心的售后服务。欢迎咨询做网站需要多少钱:18982081108一款App的导航架构设计应该是符合人们的操作惯性和方便操作的特点,也应该在交互上更加合理和人性化。根据项目功能和定位不同,不同的App的导航设计应该采用不同的技术框架,目前比较常见的导航框架主要有标签式、列表式、矩阵式三大类,如下图。
目前资讯新闻类的移动端项目的主流App框架基本都是标签式的,这种类型的导航设计技术上基本上都是通过TabBar + NavigationController框架进行搭建完成,大家经常使用到的微博、今日头条等都是采用TabBar + NavigationController这样的框架。TabBar + NavigationController就是在应该TabBar上添加itemBar,每一个itemBar都是一个独立的模块,并且每一个itemBar都对应一个NavigationController。因为每一个itemBar的导航器都不一样,所以应该是先有TabBar 再有NavigationController。
我们的项目也属于资讯类,所以我们的项目的框架也是采用TabBar + NavigationController进行搭建。今天我们的主要任务就是搭建我们TabBar,如果采用系统自带的UITabBarController(官网文档戳这里),在使用过程有一下几点需要注意:
每一个barItem都必须对应一个ViewController,可以是一般的ViewController,也可以是UINavigationController barItem对应的ViewController或UINavigationController的frame如果自定义设置了,注意不要遮挡最下面的TabBar条 barItem的顺序与添加到UITabBarController的顺序保持一致当添加的barItem个数 <= 5个时,均匀分布在最下面的bar条上,如上图所示的4个当添加的barItem个数 > 5个时,会只显示前四个添加的barItem,然后加上一个【more】,点击【more】弹出一个列表可选,并且列表的右上角有一个【edit】按钮,点击之后可以调整barItem的显示顺序,如下图所示,所以TabBar + NavigationController框架下的barItem个数最好不要超过5个,否则用户体验不是很好
添加itemBar对应的ViewController的方法有两种:一是使用UITabBarController的 setViewControllers: 方法设置;二是用UIViewController的 addChildViewController: 方法添加子视图,也可以实现添加到tabBar的功能,但是这种方法对于barItem个数 > 5的时候,只会显示前五个,剩下的不会出现时出来,也没有【more】按钮可以选择。
示例代码如下,自定义一个TabBarController继承自UITabBarController,然后重写其 viewDidLoad 方法添加子视图和标签:
@implementation XMGTabBarController - (void)viewDidLoad { [super viewDidLoad]; //添加4个item bar UITableViewController *vc0 = [[UITableViewController alloc] init]; vc0.view.backgroundColor = [UIColor redColor]; vc0.tabBarItem.title = @"精华"; vc0.tabBarItem.image = [UIImage imageNamed:@"tabBar_essence_icon"]; vc0.tabBarItem.selectedImage = [UIImage imageNamed:@"tabBar_essence_click_icon"]; [self addChildViewController:vc0]; UIViewController *vc1 = [[UIViewController alloc] init]; vc1.view.backgroundColor = [UIColor blueColor]; vc1.tabBarItem.title = @"新帖"; vc1.tabBarItem.image = [UIImage imageNamed:@"tabBar_new_icon"]; vc1.tabBarItem.selectedImage = [UIImage imageNamed:@"tabBar_new_click_icon"]; [self addChildViewController:vc1]; UITableViewController *vc2 = [[UITableViewController alloc] init]; vc2.view.backgroundColor = [UIColor greenColor]; vc2.tabBarItem.title = @"关注"; vc2.tabBarItem.image = [UIImage imageNamed:@"tabBar_friendTrends_icon"]; vc2.tabBarItem.selectedImage = [UIImage imageNamed:@"tabBar_friendTrends_click_icon"]; [self addChildViewController:vc2]; UIViewController *vc3 = [[UIViewController alloc] init]; vc3.view.backgroundColor = [UIColor grayColor]; vc3.tabBarItem.title = @"我"; vc3.tabBarItem.image = [UIImage imageNamed:@"tabBar_me_icon"]; vc3.tabBarItem.selectedImage = [UIImage imageNamed:@"tabBar_me_click_icon"]; [self addChildViewController:vc3]; //下面的方法也是可以的,推荐使用下面的方法 // [self addChildViewController:@[vc0,vc1,vc2,vc3]]; }
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流