最近遇到了這樣一個情況,客戶要求做出這種效果的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這一神奇的屬性。