UIView及其子類有兩個(gè)設(shè)置顏色的屬性:tintColor 和 backgroundColor。
你知道他們的區(qū)別么?
一、backgroundColor顧名思義就是背景顏色,就是整個(gè)UIView子類的充滿視圖的顏色。
特點(diǎn):
(1) 默認(rèn)父視圖設(shè)置的背景顏色,如果子視圖的背景顏色也是default那么默認(rèn)透明的視圖都是父視圖的背景顏色;
(2) 背景顏色對(duì)于視圖上的帶有線條的內(nèi)容是無(wú)法改變的,比如字體顏色。
二、tintColor字面意思也是色彩、痕跡,相當(dāng)于是一個(gè)描述一個(gè)視圖中的線條的顏色,這與痕跡的中文釋義不謀而合。
(1) tintColor是描述線條輪廓的一種顏色,該顏色默認(rèn)具有傳遞性,默認(rèn)狀態(tài)下最底部的視圖的tintcolor會(huì)一直往上面的視圖傳遞;
(2) 如果子視圖改變了tintcolor那么將會(huì)和父視圖的tintColor不一樣,傳遞鏈從此處斷開;
(3) navagation的item的tintColor和controller自帶的View不是在同一層次上,改變controller的view的tintColor對(duì)navagation的tintColor沒有顏色;
(4) 由于tintColor的特性,我們可以對(duì)鏤空的圖片(如tabbar的image和 BarButtonItem的image)進(jìn)行設(shè)置tintColor就可以設(shè)置改變鏤空?qǐng)D片的顏色。

可以從上圖中看出:tintColor從父視圖一直傳遞了過(guò)來(lái)。
由此我們可以做一個(gè)比較偷懶的做法,把所有的默認(rèn)的線條顏色都改為一樣的,用如何做呢?
改變window的tintColor即可,因?yàn)閣indow是最底層的view嘛!
[[UIapplication sharedApplication] keyWindow].tintColor = [UIColor orangeColor],由此會(huì)產(chǎn)生連鎖反應(yīng)。新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注