下面我先把跟學(xué)習(xí)筆記04跟05綜合的demo發(fā)出來,要是大家有什么不明白的可以直接下載下來,看懂demo了之后就不需要再看我下面寫的東西了。可看到上層內(nèi)容半透明demo
這個(gè)demo把五六個(gè)界面用push和present混用之后怎么回到根視圖传于,并且中間present的界面是這樣的半透明的界面,很淺顯易懂的醉顽。有啥不懂直接私信我評(píng)論問我都可以沼溜,大家一起學(xué)習(xí)。
首先先把需求說明游添,如圖
看界面就大概知道系草,需要有一個(gè)半透明的界面,可以看到上一層控制器上的內(nèi)容唆涝,然后在此界面上還需要展示響應(yīng)的數(shù)據(jù)等等找都。
我想高手的話應(yīng)該會(huì)很容易的用第三方控件或者是自己寫一個(gè)彈出view來解決,但是對(duì)于新手的我來說實(shí)在是有點(diǎn)難啊廊酣,這個(gè)界面我研究了很久還是沒搞出來能耻,最后決定還是要推出一個(gè)界面來實(shí)現(xiàn)這個(gè)功能。
那么假設(shè)上一層的界面是AViewController,銀行卡列表這個(gè)界面是BViewController嚎京。
在A彈出B的方法中嗡贺。
-(void)clickToBVC
{
NSLog(@"要跳轉(zhuǎn)B界面了");
BViewController *vc = [[BViewController alloc]init];
vc.modalPresentationStyle = UIModalPresentationOverCurrentContext;
self.definesPresentationContext = YES;
[self presentViewController:vc animated:YES completion:^{
vc.view.superview.backgroundColor = [UIColor clearColor];
}];
}
之后在B的ViewDidLoad方法中將B視圖的背景色設(shè)置成半透明就行了隐解。
self.view.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.3];
這就簡(jiǎn)單的完成了半透明的界面鞍帝,并且可以看到上一層視圖的內(nèi)容,這里需要注意的是那個(gè)modalPresentationStyle煞茫。在這里暫時(shí)就不贅述了帕涌,如果UIModalPresentationOverCurrentContext沒有效果的話,可以換成UIModalPresentationFullScreen試一試续徽,這里具體的我還沒有深入研究蚓曼,因?yàn)檫@兩個(gè)我在兩個(gè)不同的地方用的時(shí)候管用,換成別的就不管用了钦扭。所以這個(gè)之后我會(huì)找機(jī)會(huì)進(jìn)行深入研究后再寫一篇來說的纫版。
那么半透明的視圖完成了,那么別的東西就容易多了客情,界面上添加view其弊,然后添加列表之類的,就隨意發(fā)揮了膀斋。