資源描述:
《ios培訓-斗魚直播app之彈出房間界面》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應用文檔-天天文庫。
1、玩轉(zhuǎn)【斗魚直播APP】系列之彈出房間界面作者:小碼哥教育功能說明區(qū)分彈出秀場&普通房間如果用戶是秀場直播,那么彈出秀場房間界面如果用戶是電腦直播,那么彈出普通房間界面秀場界面彈出直接以Model方式,從底部彈出即可普通界面彈出將界面PUSH出來注意:1>界面push之后,不能再顯示UITabbar(默認依然在下面)2>彈出的界面需要因此導航欄,但是首頁導航欄依然正常展示3>彈出完成后,實現(xiàn)全屏Pop,手勢左滑退出控制器效果展示彈出功能實現(xiàn)監(jiān)聽UICollectionView的Cell點擊在BaseAnchorViewController中實現(xiàn)對應的代碼方法監(jiān)聽即可創(chuàng)建兩個房間的控制器(房間
2、不同,需要創(chuàng)建兩個控制器)RoomNormalViewController(普通房間控制器)RoomShowViewController(秀場房間控制器)在監(jiān)聽Cell點擊方法中執(zhí)行彈出邏輯取出對應的AnchorModel對象根據(jù)anchor中的isVertical屬性,判斷彈出方式0:電腦直播1:手機直播根據(jù)方式,彈出控制器即可1.funccollectionView(_collectionView:UICollectionView,didSelectItemAtindexPath:IndexPath){2.//1.取出主播信息3.letanchor=baseVM.anchorGroup
3、s[indexPath.section].anchors[indexPath.item]4.5.//2.判斷是手機直播&電腦直播6.anchor.isVertical==1?presentShowLiveVM(anchor:anchor):pushNormalLiveVM(anchor:anchor)7.}8.9.privatefuncpresentShowLiveVM(anchor:AnchorModel){10.//創(chuàng)建控制器11.letshowVC=RoomShowViewController()12.13.//彈出14.present(showVC,animated:true,co
4、mpletion:nil)15.}16.17.privatefuncpushNormalLiveVM(anchor:AnchorModel){18.//1.創(chuàng)建控制器19.letnormalVC=RoomNormalViewController()20.21.//2.push1.navigationController?.pushViewController(normalVC,animated:true)2.}顯示&隱藏UINavigationBar顯示&隱藏UINavigationBar使用下面方法即可navigationController.setNavigationBarHidden
5、(true,animated:true)true:隱藏false:顯示在RoomNormalViewController的系統(tǒng)回調(diào)方法中分別執(zhí)行對應的方法viewWillAppear:執(zhí)行隱藏方法viewWillDisappear:執(zhí)行顯示方法注意:這樣做會產(chǎn)生一個問題,就是原來系統(tǒng)的左邊緣的滑動退出控制器手勢無效了一旦我們隱藏了導航欄,那么該手勢就會自動失效如果希望繼續(xù)顯示,則需要按照下面的步驟1>navigationController?.interactivePopGestureRecognizer?.delegate=self2>navigationController?.inte
6、ractivePopGestureRecognizer?.isEnabled=true代碼如下:1.classRoomNormalViewController:UIViewController,UIGestureRecognizerDelegate{2.3.overridefuncviewDidLoad(){4.super.viewDidLoad()5.6.view.backgroundColor=UIColor.purple7.8.//保留Pop手勢1.navigationController?.interactivePopGestureRecognizer?.delegate=self
7、2.navigationController?.interactivePopGestureRecognizer?.isEnabled=true3.}4.5.6.overridefuncviewWillAppear(_animated:Bool){7.super.viewWillAppear(animated)8.9.navigationController?.setNavigationBarHidden(true,ani