031实现仿iPhone的底部选项卡

效果如下:

ViewController.h

1 #import <UIKit/UIKit.h>
2
3 @interface ViewController : UITabBarController
4 @end

ViewController.m

 1 #import "ViewController.h"
 2 #import "SampleScene.h"
 3
 4 @interface ViewController ()
 5 - (void)layoutUI;
 6 @end
 7
 8 @implementation ViewController
 9
10 - (void)viewDidLoad {
11     [super viewDidLoad];
12
13     [self layoutUI];
14 }
15
16 - (void)didReceiveMemoryWarning {
17     [super didReceiveMemoryWarning];
18     // Dispose of any resources that can be recreated.
19 }
20
21 /**
22  *  加载的UI内容
23  */
24 - (void)layoutUI {
25     self.title = @"UITabBarController";
26     /*
27     id scene1 = [[SampleScene alloc] initWithSystemItem:UITabBarSystemItemMore badge:nil];
28     id scene2 = [[SampleScene alloc] initWithSystemItem:UITabBarSystemItemFavorites badge:nil];
29     id scene3 = [[SampleScene alloc] initWithSystemItem:UITabBarSystemItemFeatured badge:nil];
30     id scene4 = [[SampleScene alloc] initWithSystemItem:UITabBarSystemItemTopRated badge:nil];
31     id scene5 = [[SampleScene alloc] initWithSystemItem:UITabBarSystemItemRecents badge:nil];
32     id scene6 = [[SampleScene alloc] initWithSystemItem:UITabBarSystemItemContacts badge:nil];
33     id scene7 = [[SampleScene alloc] initWithSystemItem:UITabBarSystemItemHistory badge:nil];
34     */
35     id scene8 = [[SampleScene alloc] initWithSystemItem:UITabBarSystemItemBookmarks badge:nil];
36     id scene9 = [[SampleScene alloc] initWithSystemItem:UITabBarSystemItemSearch badge:nil];
37     id scene10 = [[SampleScene alloc] initWithSystemItem:UITabBarSystemItemDownloads badge:@"2"];
38     id scene11 = [[SampleScene alloc] initWithSystemItem:UITabBarSystemItemMostRecent badge:nil];
39     id scene12 = [[SampleScene alloc] initWithSystemItem:UITabBarSystemItemMostViewed badge:nil];
40
41     id scene13 = [[SampleScene alloc] initWithFileName:@"Smile.png" title:@"微 笑" badge:@"1"];
42     [self setViewControllers:@[scene10, scene11, scene12, scene13, scene8, scene9] animated:NO]; //self必须是继承UITabBarController,而不是UIViewController才可以调用setViewControllers方法;iOS8显示是4个tabBarItem
43     self.customizableViewControllers = @[scene10, scene11, scene12, scene13, scene8, scene9]; //没啥用
44
45     self.selectedIndex = 3; //默认值是0
46 }
47
48 @end

SampleScene.h

 1 #import <UIKit/UIKit.h>
 2
 3 @interface SampleScene : UIViewController
 4 @property (nonatomic, strong) UILabel *lblMessage;
 5 @property (nonatomic, assign) NSUInteger tabBarItemType;
 6
 7 - (id)initWithSystemItem:(UITabBarSystemItem)item badge:(NSString *)badge;
 8 - (id)initWithFileName:(NSString *)fileName title:(NSString *)title badge:(NSString *)badge;
 9
10 @end

SampleScene.m

 1 #import "SampleScene.h"
 2
 3 @interface SampleScene ()
 4 @end
 5
 6 @implementation SampleScene
 7
 8 - (void)viewDidLoad {
 9     [super viewDidLoad];
10     _lblMessage = [[UILabel alloc] initWithFrame:self.view.bounds];
11     _lblMessage.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
12     switch (_tabBarItemType) {
13         case 1:
14             _lblMessage.backgroundColor = [UIColor orangeColor];
15             break;
16         case 2:
17             _lblMessage.backgroundColor = [UIColor brownColor];
18             break;
19         case 3:
20             _lblMessage.backgroundColor = [UIColor cyanColor];
21             break;
22         default:
23             _lblMessage.backgroundColor = [UIColor lightGrayColor];
24             break;
25     }
26
27     [self.view addSubview:_lblMessage];
28
29     NSLog(@"viewDidLoad");
30 }
31
32 - (void)didReceiveMemoryWarning {
33     [super didReceiveMemoryWarning];
34     // Dispose of any resources that can be recreated.
35 }
36
37 /**
38  通过系统图标加载UITabBarItem
39  */
40 - (id)initWithSystemItem:(UITabBarSystemItem)item badge:(NSString *)badge {
41     if (self = [super init]) {
42         self.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:item tag:0];
43         self.tabBarItem.badgeValue = badge;
44
45         if (item == UITabBarSystemItemMostRecent) {
46             _tabBarItemType = 1;
47         } else if (item == UITabBarSystemItemMostViewed) {
48             _tabBarItemType = 2;
49         }
50     }
51     NSLog(@"initWithSystemItem");
52     return self;
53 }
54
55 /**
56  通过自定义图标加载UITabBarItem
57  */
58 - (id)initWithFileName:(NSString *)fileName title:(NSString *)title badge:(NSString *)badge {
59     if (self = [super init]) {
60         UIImage *imgIcon = [UIImage imageNamed:fileName];
61         self.tabBarItem = [[UITabBarItem alloc] initWithTitle:title image:imgIcon tag:0];
62         self.tabBarItem.badgeValue = badge;
63
64         _tabBarItemType = 3;
65     }
66     return self;
67 }
68
69 @end
时间: 2024-10-12 19:21:20

031实现仿iPhone的底部选项卡的相关文章

仿IPhone从底部弹出选项菜单

项目中开发需要,就是在点击某个控件(如头像ImageView)时要求弹出一个操作的选项菜单(对话框),效果就是像IPhone的一样,从手机屏幕底部往上弹出的,做了个简单的效果工具类,写下来方便下次使用. 首先我们要定义弹出的对话框样式: public static Dialog createShowAlert(final Context context, int layoutId) {/**方法中要传入建立对话框的Layout*/ LayoutInflater inflater = (Layou

TabLayoutBottomDemo【TabLayout实现底部选项卡】

版权声明:本文为博主原创文章,未经博主允许不得转载. 前言 使用TabLayout实现底部选项卡切换功能. 效果图 代码分析 1.演示固定模式的展现 2.演示自定义布局的实现 使用步骤 一.项目组织结构图 注意事项: 1.  导入类文件后需要change包名以及重新import R文件路径 2.  Values目录下的文件(strings.xml.dimens.xml.colors.xml等),如果项目中存在,则复制里面的内容,不要整个覆盖 二.导入步骤 引入依赖库 在APP的build.gra

仿iphone动态萤火虫锁屏应用源码

该源码是仿iphone动态萤火虫锁屏应用源码,源码SkyLock,这也是最近弄了一款锁屏,苦于市场百般阻拦与锁屏应用数量实在太多,于是将它拿出来开源:废话不多说,希望大家能够希望,更多说明请看下面的吧. 详细源码下载:http://code.662p.com/view/9686.html <ignore_js_op><ignore_js_op> 后面的萤火虫是会动的,gif图片不会截取 <ignore_js_op> 20141202005325.png (106.46

仿iphone动态萤火虫锁屏应用安卓源码

该源码是仿iphone动态萤火虫锁屏应用源码,源码SkyLock,这也是最近弄了一款锁屏,苦于市场百般阻拦与锁屏应用数量实在太多,于是将它拿出来开源:废话不多说,希望大家能够希望,更多说明请看下面的吧. <ignore_js_op><ignore_js_op> 后面的萤火虫是会动的,gif图片不会截取 <ignore_js_op> 20141202005325.png (106.46 KB, 下载次数: 0)下载附件  保存到相册 2014-12-2 00:53 上 大

仿IPhone 长按图标删除应用,图标抖动效果

仿IPhone 长按图标删除应用,图标抖动效果 使用ValueAnimator类实现,长点击图标,图标抖动的效果,可以自己规定抖动的程度大小. 由于Animator类是在android3.0之后才加上去的,所以,为了兼容3.0以下的机子,就导入了nineoldandroid.jar包,实现兼容. 工程源代码: 点击下载 仿IPhone 长按图标删除应用,图标抖动效果

HTML5 开发APP(头部和底部选项卡)

我们开发app有一定固定的样式,比如头部和底部选项卡部分就是公共部分就比如我在做的app进来的主页面就像图片显示的那样 我们该怎么实现呢,实现我们应该建一个主页面index.html,然后建五个子页面,通过mui来实现切换功能. 在index的html部分写下这样的代码 <body> <header class="mui-bar mui-bar-nav" style="padding-right: 15px;background: #00be68;"

自己定义控件-仿iphone之ToggleButton&amp;amp;VoiceSeekBar

由于项目中须要使用开关切换button,和声音滑动控件,可是原生Android5.0版本号以下的控件实在是太挫了.尽管网上已经有非常多关于这两个控件的blog.可是我实在是找不到像iPhone这样简洁样式的,只是咱们程序猿总不能这点问题就被难道撒···所以我决定仿照iphone的样式自己写这两个控件,. 效果图例如以下: 一.ToggleButton 先直接上代码.后面会一步步分析 package com.zuck.definitionview.views; import android.ani

jquery特效分享-一款基于jQuery的仿百度首页滑动选项卡

今天给大家分享一款基于jQuery的仿百度首页滑动选项卡.这款选项卡适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 实现的代码. html代码: <div class="main-page"> <div class="left"> <div class="nav-back"> </div> <div class="

基于jquery仿360网站图片选项卡切换代码

今天给大家分享一款基于jquery仿360网站图片选项卡切换代码.这款实例适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="slides"> <div class="in widget-slide" data-jss="tabSelector : '.slide-nav li', viewSe