最近在網(wǎng)上查詢資料發(fā)現(xiàn),很多都是copy別人的直接發(fā)出來,自己都不知道實(shí)現(xiàn)功能沒有就來欺騙大眾,看的我怒會三丈啊,沒辦法,自己研究吧
這是做出來的效果,點(diǎn)擊美團(tuán)彈出一個氣泡,類似效果的實(shí)現(xiàn),以前都是用點(diǎn)擊button觸發(fā)事件,事件里面新建一個ViewController,想要的樣式在添加到View上.總體來說比較繁瑣,今天介紹一個iOS8以后才能在iPhone上實(shí)現(xiàn)的代碼.
做過iPad開發(fā)的人對這個效果一定不陌生,iOS8之前要實(shí)現(xiàn)這個效果就是用UIPopoverController
但是在iPhone上是不支持這個類的,你可以寫出來,但運(yùn)行一定蹦.iOS8以后蘋果推出來一個新的來代替了UIPopoverController
,那就是UIPopoverPresentationController
下面直接上代碼
- (void)dorpDown:(UIButton *)sender{ // 此為自定義的ViewController MTCategoryViewController *view = [[MTCategoryViewController alloc] init]; // 設(shè)定大小(此處也可不做設(shè)置,不做設(shè)置的效果如下圖) view.preferredContentSize = CGSizeMake(100, 150); // 初始化 view.modalPresentationStyle = UIModalPresentationPopover; UIPopoverPresentationController *popVC = view.popoverPresentationController; // 設(shè)置代理(iPhone必須設(shè)置代理才能顯示) popVC.delegate = self; // 獲取按鈕 popVC.barButtonItem = self.logoItem; // 退出視圖 [self presentViewController:view animated:YES completion:nil]; }
- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller{ // 此處為不適配(如果選擇其他,會自動視頻屏幕,上面設(shè)置的大小就毫無意義了) return UIModalPresentationNone; }
模態(tài)出的view上想加什么加什么,這只是初級應(yīng)用,更深層次的各位可以自己去深入研究.