iOS: 如何调节UITabbarItem的图片和文字位置

摘要:
因此,如果直接设置tabBarItem的selectImage和image,则会出现无法显示图像的问题。此时,我们需要调用imageWithRenderingMode:方法来实现UIImageRenderingMode(渲染模式)。您可以设置UIImage在配置时是否使用当前视图的TintColor。

转载自:http://blog.csdn.net/kevinwlc/article/details/21467499/

在ios7中,方法setFinishedSelectedImage:withFinishedUnselectedImage: 已经被弃用,所以如果直接设置tabBarItem的selectImage和image时会出现不能显示图片的问题,效果可能如图:

iOS: 如何调节UITabbarItem的图片和文字位置第1张

这时候我们就需要调用imageWithRenderingMode:方法来实现

iOS: 如何调节UITabbarItem的图片和文字位置第2张

里面有个UIImageRenderingMode(渲染模式),它是一个枚举

iOS: 如何调节UITabbarItem的图片和文字位置第3张

着色(Tint Color)是iOS7界面中的一个重大改变,你可以设置一个UIImage在渲染时是否使用当前视图的Tint Color。UIImage新增了一个只读属性:renderingMode,对应的还有一个新增方法:imageWithRenderingMode:,它使用UIImageRenderingMode枚举值来设置图片的renderingMode属性。该枚举中包含下列值:

iOS: 如何调节UITabbarItem的图片和文字位置第4张

renderingMode属性的默认值是UIImageRenderingModeAutomatic,即UIImage是否使用Tint Color取决于它显示的位置。其他情况可以看下面的图例

iOS: 如何调节UITabbarItem的图片和文字位置第5张

以下的代码说明了使用一个既定的rendering模式创建图片是多么简单:

iOS: 如何调节UITabbarItem的图片和文字位置第6张

知道了这点我们就可以在ios7中实现想要的效果了

iOS: 如何调节UITabbarItem的图片和文字位置第7张

前后效果图的代码对比

之前的:

iOS: 如何调节UITabbarItem的图片和文字位置第8张

之后的:

iOS: 如何调节UITabbarItem的图片和文字位置第9张

IOS_7是一个宏,nc1是一个个viewController

iOS: 如何调节UITabbarItem的图片和文字位置第10张

现在的效果很接近了已经,但是发现图片会向上偏移一部分,

这时候就需要设置tabBarItem.imageInsets, 这是一个UIEdgeInsets 。UIEdgeInsets,由函数 UIEdgeInsetsMake ( CGFloat top, CGFloat left, CGFloat bottom, CGFloat right );     构造出,分别表示其中的内容/标题/图片离各边的距离。它类似于css中的padding, 可以对图像进行位置的偏移设置。

iOS: 如何调节UITabbarItem的图片和文字位置第11张

最后加上这个属性,代码如下

iOS: 如何调节UITabbarItem的图片和文字位置第12张

最后就实现了想要的效果:

iOS: 如何调节UITabbarItem的图片和文字位置第13张

免责声明:文章转载自《iOS: 如何调节UITabbarItem的图片和文字位置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇spark性能测试理论-Benchmark(转)获取谷歌浏览器缓存视频方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

设计模式之禅之设计模式-建造者模式

一:建造者模式的定义        --->建造者模式(Builder Pattern)也叫做生成器模式,其定义如下:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示        ● Product产品类                通常是实现了模板方法模式,也就是有模板方法和基本方法,这个参考模板方法模式。例子中的Ben...

MySQL-读写分离与分布式架构

MySQL读写分离概述 读写分离原理 基本原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作性操作导致的变更同步到集群中的从数据库=b。 读写分离原理图: 数据内部交换过程: 为什么要读写分离 面对越来越大的访问压力,单台的服务器的性能成为瓶颈需要分担负...

JavaScript——Firebug控制台详解

转载至:http://www.ruanyifeng.com/blog/2011/03/firebug_console_tutorial.html 作者: 阮一峰 控制台(Console)是Firebug的第一个面板,也是最重要的面板,主要作用是显示网页加载过程中产生各类信息。 一、显示信息的命令 Firebug内置一个console对象,提供5种方法,用...

jQuery Easing 动画效果扩展--使用Easing插件,让你的动画更具美感。

jQuery  Easing 是一款比较老的jQuery插件,在很多网站都有应用,尤其是在一些页面滚动、幻灯片切换等场景应用比较多。它非常小巧,且有多种动画方案供选择,使用简单,而且免费。 引入Easing js文件 该插件基于jQuery,所以需要同时引入jQuery库文件和Easing js文件。 <script type="text/javas...

Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)

在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等。 下面就来说说经常会使用到通知机制中的通知栏框架(Notificaiton),它适用于交互事件的通知。它是位于顶层可以展开的通知列表。它会时不时的提醒你什么软件...

很酷的页面布局框架

建高楼大厦时,我们总是先用钢筋水泥搭好骨架,然后再加砖添瓦,布置每套房屋。编写一个网页也是这样,须先将布局框架搭好稳固,之后才能游刃有余。本博文阐述如何实现了两栏布局(main栏和sub栏),三栏布局(main栏、sub栏和extra栏),以及布局中各栏的排列顺序。 本示例布局框架具有以下特性: 跨浏览器:兼容IE6。 稳固性:布局稳固,不受内容的影响。...