设置UITabBarController上ImageInsets后点击不断缩小

  最近遇到了这样一个情况,客户要求做出这种效果的UITabBarController。

  通过各种查询,得出UITabBarController有这样一个属性,是设置它的图片距上下左右距离的属性:

        navSmartLifeController.tabBarItem.imageInsets = UIEdgeInsetsMake(-10, 0, 17, 0)

  欣喜地发现成功出现了客户所需要的效果,虽说丑了点儿-.-

  但是,新的风暴马上就出现了。点一下闪一秒我都忍了,谁告诉我为什么会越点越小

  心里是拒绝的。。

  然后开始了如下的尝试:

  1.将设置ImageInsets从storyBoard改为代码手写,没变化;

  2.遵守UITabBarControllerDelegate协议,在协议方法中判断点击的控制器后更改ImageInsets。仍无卵用;

  最终,发现了一个让我激动的方法:

  3.

UIEdgeInsetsMake(<#T##top: CGFloat##CGFloat#>, <#T##left: CGFloat##CGFloat#>, <#T##bottom: CGFloat##CGFloat#>, <#T##right: CGFloat##CGFloat#>)

  仔细观察,发现UIEdgeInsets是上左下右这样区分的,所以要设置上下一致,左右一致,例如(-5,0,5,0)

  完成。

  

  卡了三个小时的Bug用了三分钟解决了。希望大家能有所收获,也多多了解UIEdgeInsets这一神奇的属性。

原文地址:https://www.cnblogs.com/SoulKai/p/5786772.html