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, 可以對圖像進行位置的偏移設置。

最后加上這個屬性,代碼如下

最后就實現了想要的效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM