国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

UIAppearance 控件主題修改(navber、tabar、一些UI控件)

2019-11-06 09:53:21
字體:
供稿:網(wǎng)友

轉(zhuǎn)自:http://www.jianshu.com/p/8262ec74bfc7

一、前言

我們經(jīng)常設(shè)置UINavigationBar、UITabBar等主題,我們有沒有想過,為什么我們可以給它們設(shè)置主題屬性呢?你可能回答是系統(tǒng)提供了這些主題,對,但是,又是那些對象,可以設(shè)置主題屬性呢?

二、主題設(shè)置的前提

1. 那些控件和類,可以設(shè)置主題呢?
回答:只要遵守了UIAppearance協(xié)議的類,都可以設(shè)置主題查看UIView的頭文件,可得,UIView可以設(shè)置主題,那么不是所有繼承UIView的控件就都可以設(shè)置主題了嗎?是的Snip20150901_10.png觀看可得,不僅,只是控件可以設(shè)置主題,UIBarItem等只要遵守了UIAppearance協(xié)議的類,都可以設(shè)置主題Snip20150901_11.png
2.遵守UIAppearance協(xié)議的類的,那些屬性可以設(shè)置主題呢?

通過主題對象設(shè)置屬性的前提: 屬性后面是否帶有UI_APPEARANCE_SELECTOR的方法

因為并不是所以屬性可以設(shè)置主題,設(shè)置主題屬性是有前提的查看頭文件可得,可以設(shè)置UITabBarItem類,發(fā)現(xiàn)setTitleTextAttributes:可以設(shè)置UITabBarItem文字主題- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)stateNS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;案例:設(shè)置所有的UITabBarItem,普通與選中狀態(tài)下的文字顏色Snip20150901_8.png

三、運用主題appearance,是否會生效,何時會生效

1、主題會生效:先設(shè)置控件主題,后添加控件,
添加控件時,添加的那一刻會檢查主題,會根據(jù)主題設(shè)置控件 =》主題會生效
2、主題不會生效:先添加控件,后設(shè)置主題
控件已經(jīng)添加,后設(shè)置主題,對以前的添加的控件不起作用了如果,先添加控件,后設(shè)置主題,主題失效,我們該如何解決呢?
3、如何解決主題失效問題

方案1 :將控件所在控制器的View從窗口移除,因為主題已經(jīng)確定了,再將控件所在控制器的View添加到窗口上 =》 此時主題就起作用了。

Snip20150901_18.png缺點:擴(kuò)展性不好,因為這樣不能解決所有控制器上的控件的主題方案2:獲取到應(yīng)用的windows數(shù)組,然后遍歷,將view刪除,然后添加上即可注意:控件是否銷毀,要看是否有強(qiáng)指針指向它


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 三河市| 梓潼县| 惠安县| 彰武县| 长泰县| 乐业县| 十堰市| 郓城县| 开江县| 海阳市| 祁东县| 县级市| 清新县| 石河子市| 北票市| 鄂尔多斯市| 昌平区| 林周县| 贡嘎县| 天津市| 外汇| 潼南县| 民县| 嵊泗县| 咸丰县| 固镇县| 平邑县| 潜江市| 景宁| 陆良县| 福鼎市| 德保县| 陇南市| 宁都县| 休宁县| 青阳县| 翁牛特旗| 图片| 揭东县| 南宁市| 泸州市|