当前位置: 首页 > news >正文

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

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

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

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

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

 

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

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

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

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

前后效果图的代码对比

之前的:

之后的:

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

 

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

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

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

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

 

相关文章:

  • Python学习笔记——文件写入和读取
  • C/C++动态分配与释放内存的区别详细解析
  • I.MX6 简单电路模拟USB设备的插入
  • MySQL备份 博客---MYSQLDBA 黄杉
  • java-工具-Webservice wsdl解析
  • 重定向 管道
  • [ZigBee] 16、Zigbee协议栈应用(二)——基于OSAL的无线控制LED闪烁分析(下)
  • 微信公众号开发小记——5.python微信红包
  • Android 开发之布局细节对比:Gravity相关
  • 纯Html+Ajax和JSP两者对比的个人理解
  • LEAVE LIST-PROCESSING和LEAVE TO LIST-PROCESSING事件的作用
  • 开根号研究
  • CCIE学习笔记 ----BGP
  • 什么是内存泄漏
  • Log4Net使用指南 - sema - 博客园
  • 《剑指offer》分解让复杂问题更简单
  • CSS实用技巧干货
  • django开发-定时任务的使用
  • HTTP 简介
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • Kibana配置logstash,报表一体化
  • mysql常用命令汇总
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 基于 Babel 的 npm 包最小化设置
  • (a /b)*c的值
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (C#)获取字符编码的类
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (顺序)容器的好伴侣 --- 容器适配器
  • (万字长文)Spring的核心知识尽揽其中
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转)setTimeout 和 setInterval 的区别
  • (转)程序员技术练级攻略
  • .java 9 找不到符号_java找不到符号
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET处理HTTP请求
  • .NET开源快速、强大、免费的电子表格组件
  • .net下简单快捷的数值高低位切换
  • /var/spool/postfix/maildrop 下有大量文件
  • @requestBody写与不写的情况
  • @RequestBody与@ResponseBody的使用
  • @staticmethod和@classmethod的作用与区别
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [20170705]diff比较执行结果的内容.txt
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [BZOJ4554][TJOI2016HEOI2016]游戏(匈牙利)
  • [C/C++]数据结构 深入挖掘环形链表问题
  • [codeforces] 25E Test || hash
  • [hive小技巧]同一份数据多种处理
  • [IT生活推荐]大家一起来玩游戏喽,来的都进!
  • [Java基础]—JDBC
  • [js]js设计模式小结