日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UIAppearanceContainer 利器

發(fā)布時間:2025/4/5 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UIAppearanceContainer 利器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標準>>>

這是一個很重要的protocol,而且它的代理類是UIView和UIBarItem等,UIView和UIBarItem是比較偏底層的父類,很多常用的UI系控件都繼承了它們中某一個,如UIButton、UILabel、UINavigationBar、UIBarButtonItem。(網(wǎng)上相關資料也不多) 因為這個有個很吸引人的是實例方法

/** 自定義一個類的所有實例的外觀,外觀修改相關信息發(fā)送到外觀的代理類。注意iOS7:UIView iOS7 tintColor屬性已經(jīng),現(xiàn)在有特殊遺傳行為UIView.h中描述。這種繼承的行為可以用外表代理沖突,因此tintColor現(xiàn)在不允許出現(xiàn)代理。 **/ + (instancetype)appearance;

現(xiàn)在來說說使用它的好處了 ####優(yōu)點1:可以少碼很多代碼,節(jié)省開發(fā)時間,規(guī)范代碼。 我們在創(chuàng)建一個類的時候會寫很多相同的屬性設置代碼。比如一個UILabel的BackgroundColor設置,這個對設計師來說,他們一般都是設計背景色透明的,不同的iOS版本它的默認背景色有區(qū)別( iOS6默認是白色)的,一般我們在寫的時候會加上一句代碼 設置背景為透明。如果有N個控件 那我們可能要加近N出地方。

? ? [[UILabel appearance] setBackgroundColor:[UIColor clearColor]];

使用這么一句代碼就能搞定

####優(yōu)點2:在滿足需求時,盡可能少的使用自定義控件,性能也會相對好一點 不同的app會有不同的風格,如UINavigationBar、UITabBar等的樣式變化,UINavigationBar可能網(wǎng)上講的方法比較多,這邊就拿UITabBar來說一下吧。比如最近開發(fā)中遇到的一件事 設計看到Instagram app的底部TabBar是只有顯示圖片,并且高度只有44px,這與我們正常認知TabBar高度是49px有差異,第一直覺告訴我們Instagram底部狀態(tài)欄是自定義實現(xiàn)的!但經(jīng)常使用appearance,第二反應我是否可以通過它來實現(xiàn)。經(jīng)過實踐用一段簡單的代碼就完成了。

[[UITabBar appearance] setFrame:CGRectMake(0, SCREEN_HEIGHT-44, SCREEN_WIDTH, 44)]; //如果圖片的位置需要調整 可使用下面的代碼 具體位置可通過調值改變[[UITabBarItem appearance] setImageInsets:UIEdgeInsetsMake(5, 0, -5, 0)];

看完這個后,是不是覺得換UITabBar可以很方便,很簡單。而且用系統(tǒng)的實現(xiàn)方式心里也有底,性能也比自定義實現(xiàn)的好多了。

####優(yōu)點3:代碼易管理,易迭代,在設計風格出現(xiàn)變動的時候可以快速的響應 因為你對整個app風格可以在一處地方可以實現(xiàn),想要改動的時候自然輕松的多。如TableView的背景色設置,cell的按下狀態(tài)顏色設置等等

? ? [[UITableView appearance] setBackgroundColor:[UIColor whiteColor]];UIView *cellSelectedBgView = [UIView new];cellSelectedBgView.backgroundColor = [UIColor yellowColor];[[UITableViewCell appearance] setSelectedBackgroundView:cellSelectedBgView];

轉載于:https://my.oschina.net/u/1391235/blog/742323

總結

以上是生活随笔為你收集整理的UIAppearanceContainer 利器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。