iOS开发>学无止境 - AKTabBarController:类似微信的第三方库

自从有了评论之后,就可以很方便的和大家交流。以前都是我一个人默默的发文章,看不出大家对文章的看法。评论开通之后,就可以很快速的获取大家对文章的看法。

有人会指出文章里有错误的地方,真的很感激他们,非常的认真;有人会对文章说出自己的见解,加深自己的印象,同时,也能帮助到其他的朋友;有人也会在评论里,提出一些问题,但是鉴于评论的字数限制,只能简单的回答一下。

在昨天的文章评论里面,有一个朋友提出了一个问题,关于微信导航栏的。

问题分析和解答

问:

自定义导航栏怎么写?就像微信那样,tabBar的四个界面切换导航栏都不变化

答:

github上搜索AKTabBarController

其实,这位朋友的问题不是关于自定义导航栏,我觉得他可能是想问微信底部的TabBar和导航结合使用是如何实现的。

记得之前在github看到过有一个类似微信的框架(算不上框架,我们就这么简单的叫一下)。就是AKTabBarController

AKTabBarController是一个非常不错的第三方。在github上有663个star,使用方法也不是很复杂,下面我们简单的看一下。

如何导入到项目中

AKTabBarController是支持CocoaPods导入的。想理解CocoaPods的请点击:CocoaPods安装和使用教程。在你的Podfile文件中加入:

platform :ios

pod ‘AKTabBarController‘

添加成功之后,在终端执行:

pod install

如何使用AKTabBarController

安装成功之后,在你想用的地方导入头文件:

#import "AKTabBarController.h"

然后,创建tabBar

// Create and initialize the height of the tab bar to 50px.
_tabBarController = [[AKTabBarController alloc] initWithTabBarHeight:50];

// Create and initialize with specific height and position atop the view controller
_tabBarController = [[AKTabBarController alloc] initWithTabBarHeight:50 position:AKTabBarPositionTop];

// Adding the view controllers to manage.
[_tabBarController setViewControllers:@[[[FirstViewController alloc] init], [[SecondViewController alloc] init], [[ThirdViewController alloc] init], [[FourthViewController alloc] init]]]];  

关于更多AKTabBarController的用法,请访问:https://github.com/alikaragoz/AKTabBarController

功能简介

• 自适应竖屏和横屏模式,tab 上的图标会根据竖屏和横屏模式自动缩放大小以适应tab的高度。

• 自定义 tab bar 的高度;

• 当进入下个视图时,可以自动隐藏tab bar;

• 可以只显示图片,而不显示文字;并且当 tab bar 的高度太小时,可以自动缩放图片以及隐藏文字;

• 只需要一张图片来表示 tab 被选择和非选择模式。即tab 被选中时的高光是用CoreGraphics绘制的,不需要额外的图片。

• 选择不同 tab 时的动画切换效果用的是淡入淡出(cross fade)的效果. 

• 支持预渲染图像

• 支持设置tabBar字体。

实际效果

最终实现的效果如下所示:

这里只是简单的讲解一下。大家闲的时候,如果有兴趣的话,可以自己动手来熟练关于AKTabBarController更多的功能。

时间: 2024-10-22 08:12:26

iOS开发>学无止境 - AKTabBarController:类似微信的第三方库的相关文章

iOS开发一些经常用到的第三方框架

开发iOS一年多了,发现很多知识需要总结,就比如iOS中我们需要用到的一些第三方类库,可以说iOS开发里面有太多的第三方类库,但我们经常用到的也就那几个,在这里我简单的做了以下总结,供大家相互学习 Reachability 检测网络连接 用来检查网络连接是否可用:包括WIFI和WWAN(3G/EDGE/CDMA等)两种工作模式. 现在有更好的替代品:https://github.com/tonymillion/Reachability,比Apple提供的兼容性更好,而且更加好用,更具体的使用方法

小程序云开发调用HTTP请求中got第三方库使用失败解决方法

小程序云开发调用HTTP请求中got第三方库使用失败解决方法 错误代码 {"errorCode":1,"errorMessage":"user code exception caught","stackTrace":"The \"original\" argument must be of type function"} 替换方案 // 云函数入口文件 const cloud = req

iOS开发>学无止境 - 保存照片到自己创建的相簿

在刚刚在线上一篇文章iOS开发之保存照片到系统相册(Photo Album),我们讲到了如何保持照片系统相册.还有其他保存的方法吗? 保存照片还可以用ALAssetsLibrary,ALAssetsLibrary提供了我们对iOS设备中的相片.视频的访问,是连接应用程序和相册之间访问的一个桥梁. 接下来,我们来详细讲解一下关于系统相册权限获取.保存照片.创建自己的相簿等等功能. 创建自己的相簿 这也是一种比较创建的作法,创建自己的相簿,然后把照片或者视频保存到自己的相簿中.相关代码如下: ALA

iOS开发支付集成之微信支付

这一篇是<iOS开发之支付>这一部分的继支付宝支付集成,银联支付集成第三篇,微信支付.在集成的时候建议都要去下载最新版的SDK,因为我知道的前不久支付宝,银联都更新了一次,微信的不太清楚更新了没. 在被支付宝.银联坑过之后,发现其实微信支付的集成并没有想象中的那么困难,像支付宝那样简单地调用个方法就行,重要的难的部分都是后台来做的.微信支付也是需要签名的,也跟支付宝一样,可以在客户端签名,也可以在后台签名(当然,为了安全还是推荐在服务器上做签名,逻辑也比较好理解). 集成前首先要看看文档,开发

iOS开发&gt;学无止境 - 浅谈MVVM的架构设计与团队协作

李刚按:本文是青玉伏案写的一篇文章.相信大家对MVC耳熟能详,MVVM可能听说的相对少一些,这一篇文章将会想你阐述MVVM设计,还有团队协作的经验分享.如果你也觉得不错,就分享一下吧! demo:https://github.com/lizelu/MVVM 今天写这篇文章是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇文章的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦~). 由 于本人项目经验有限,关于架构设

iOS开发&gt;学无止境 - UITablView上下滑动控制底部按钮的出现和消失

今天我们一起来做一个好玩的功能,通过UITablView上下滑动控制底部按钮的出现和消失.先来看看效果: 需求分析 要做一个这样的功能,对你来说应该不难,实现的方式也有很多.我们来分析一下要实现那几个小功能点: UITablView向上滑动,底部按钮消失 UITablView向下滑动,底部按钮出现 UITablView滑动到底部,底部按钮出现 主要就是这三个小功能点.那么很简单,我们只需要判断UITablView是往上滑动,还是往下滑动,以及判断UITablView是否滑动到底部即可. 代码实现

iOS开发&gt;学无止境 - 遍历Model类的属性并完善使用Runtime给Model类赋值

在前几天的一篇博客<iOS开发之使用Runtime给Model类赋值>中介绍了如何使用运行时在实体类的基类中添加给实体类的属性赋值的方法,这个方法的前提是字典的Key必须和实体类的Property Name相同,然后通过运行时来生成和执行Setter方法给Model类的属性赋值. 通 过Runtime来给Model类属性赋值的好处是多多的,它便于代码的后期维护,并且提高了开发效率.当你拿到解析后的字典时你不用一个一个的通过 key去把字典的值赋值给相应的Model类的属性,本篇博客中会给出如何

iOS开发&gt;学无止境 - 沙盒和文件操作(汇总)

关于沙盒和文件操作的文章写了几篇,在写的过程中加深了自己的记忆.今天来做一下汇总,算是对知识点的梳理. 文章梳理 1 iOS开发之沙盒机制(SandBox) 这是一篇关于沙盒的基础知识教程.简述沙盒的作用,对Documents.Library.tmp之间的区别做了介绍.通过两种方法打开沙盒,查看其中的内容. 2 iOS开发之获取沙盒路径 沙盒里的文件夹包括Documents.Library.tmp.文章介绍了如何获取Documents.Library.Caches.tmp的路径. 3 如何查看真

IOS开发中制作属于自己的静态库.a、资源库.bundle、.framework

一.什么是库        库实际上是一种代码共享的方式,主要用于代码重用和源码隐藏,通常分为动态库和静态库. 静态库:链接时完整的拷贝至可执行文件中,被多次使用就有多份冗余拷贝. 动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存空间. 二.什么是.a..bundle..framework          在iOS中静态库以.a和.framework的形式存在,动态库以.dylib和.framework的形式存在. 之所以.framewo