下面我先把跟學(xué)習(xí)筆記04跟05綜合的demo發(fā)出來(lái),要是大家有什么不明白的可以直接下載下來(lái),看懂demo了之后就不需要再看我下面寫(xiě)的東西了。可看到上層內(nèi)容半透明demo
這個(gè)demo把五六個(gè)界面用push和present混用之后怎么回到根視圖,并且中間present的界面是這樣的半透明的界面,很淺顯易懂的。有啥不懂直接私信我評(píng)論問(wèn)我都可以,大家一起學(xué)習(xí)。
首先先把需求說(shuō)明,如圖

看界面就大概知道,需要有一個(gè)半透明的界面,可以看到上一層控制器上的內(nèi)容,然后在此界面上還需要展示響應(yīng)的數(shù)據(jù)等等。
我想高手的話(huà)應(yīng)該會(huì)很容易的用第三方控件或者是自己寫(xiě)一個(gè)彈出view來(lái)解決,但是對(duì)于新手的我來(lái)說(shuō)實(shí)在是有點(diǎn)難啊,這個(gè)界面我研究了很久還是沒(méi)搞出來(lái),最后決定還是要推出一個(gè)界面來(lái)實(shí)現(xiàn)這個(gè)功能。
那么假設(shè)上一層的界面是AViewController,銀行卡列表這個(gè)界面是BViewController。
在A(yíng)彈出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沒(méi)有效果的話(huà),可以換成UIModalPresentationFullScreen試一試,這里具體的我還沒(méi)有深入研究,因?yàn)檫@兩個(gè)我在兩個(gè)不同的地方用的時(shí)候管用,換成別的就不管用了。所以這個(gè)之后我會(huì)找機(jī)會(huì)進(jìn)行深入研究后再寫(xiě)一篇來(lái)說(shuō)的。
那么半透明的視圖完成了,那么別的東西就容易多了,界面上添加view,然后添加列表之類(lèi)的,就隨意發(fā)揮了。