最近很多情況,UED的部門要求狀態(tài)欄是透明色谎柄,顯示背景的顏色帜篇!
起初中剩,我想獲取這個(gè)控件,并將這個(gè)控件背景色設(shè)置為透明色莫辨。
結(jié)果:我根本無法獲取這個(gè)控件傲茄。
第二部:在包含導(dǎo)航欄的時(shí)候,我發(fā)現(xiàn)可以通過導(dǎo)航欄沮榜,設(shè)置導(dǎo)航欄背景來改變
結(jié)果: 這個(gè)方法只能解決一部分情況盘榨!
如果遇到了隱藏導(dǎo)航欄,無導(dǎo)航欄或者自定義導(dǎo)航欄時(shí)蟆融,我們?cè)撛趺崔k草巡?
今天,突然上網(wǎng)查了下方案:cocoaChina真的有神人能定位解決這個(gè)問題
http://www.cocoachina.com/bbs/read.php?tid=1714043
大神的回答型酥,我轉(zhuǎn)摘如下:
1.導(dǎo)航欄本身是透明的捷犹,但是控制器添加視圖會(huì)有20的偏移量。本來就是透明的冕末,只是你的視圖的frame.origin.y是從0開始的,也就是狀態(tài)欄的底部侣颂,設(shè)置成-20就可以了
2.設(shè)置控制器的 self.automaticallyAdjustsScrollViewInsets = YES;就會(huì)從頂部顯示
3.如果要導(dǎo)航欄和狀態(tài)欄都全透明的話
self.navigationController.navigationBar.translucent = YES;
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [UIImage new];
我的情況如下:導(dǎo)航欄被隱藏了档桃。僅僅下面這句話:
self.automaticallyAdjustsScrollViewInsets = YES;不夠的
然后,我設(shè)置位置偏移-20,如下:
[self.view addSubview: self.scrollView];
[self.scrollView mas_makeConstraints:^(MASConstraintMaker *make){
make.top.equalTo(self.view).offset(-20);
make.left.right.equalTo(self.view);
make.bottom.equalTo(self.view.mas_bottom).offset(-44);
}];
成功實(shí)現(xiàn)狀態(tài)欄 完全透明的憔晒,直接反饋背景的顏色T逡蕖!>艿!`谕汀!
(不積跬步無以至千里从撼,這些小知識(shí)點(diǎn)一定要多積累V莸堋)
近期需求又改了,要求狀態(tài)欄有遮擋,需要view 與scrollview 進(jìn)行配合
當(dāng)scrollView 約束為下面時(shí)
make.top.equalTo(self.view).offset(0);
效果:初始位置遮擋婆翔,滑動(dòng)后沒有遮擋拯杠。
make.top.equalTo(self.view).offset(20);
效果:初始位置遮擋,滑動(dòng)后也有遮擋啃奴。
PS:補(bǔ)充知識(shí):
http://www.reibang.com/p/63f758796438