zoukankan      html  css  js  c++  java
  • popoverPresentationController UIPopoverController 使用方法详解(气泡控制器)

     之前iPad特有的控件,现在iPhone亦可使用。

     点击按钮,弹出popOverVC.

    按钮的点击事件:

    - (IBAction)pickOrderAction:(UIButton *)sender {
        
        // > 初始化要弹出的控制器
        UIViewController * vc = [[UIViewController alloc] init];
        vc.view.backgroundColor = [UIColor blueColor];
         // > 设置弹出的控制器的显示样式
        vc.modalPresentationStyle = UIModalPresentationPopover;
         // > 弹出模式
        vc.modalTransitionStyle   = UIModalTransitionStyleFlipHorizontal;
        // > 弹出控制器的尺寸
        vc.preferredContentSize = CGSizeMake(300, 150);
        // > 弹出控制器的箭头指向的view
        vc.popoverPresentationController.sourceView = sender;
        // > 弹出视图的箭头的“尖”的坐标 - 以sourceView的(0,0,0,0)为基准结合sourceRect。系统默认width/2使用。(sender.bounds的位置即:在sender的底部边缘居中)
        vc.popoverPresentationController.sourceRect = sender.bounds;
        // > 箭头的指向(上,下,左,右)
        vc.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionUp;
        // > presentVC
        [self presentViewController:vc animated:YES completion:nil];
    }

     ENOUGH TO USE?

    iPad使用以上方法就可实现弹出功能

    以下是iPhone的实现方法

    TipViewController 是一个自定义的UIViewController

    使用时一定要设置代理。并实现此代理方法;

    效果如图:

     /// 设置气泡 - 提示开播时间
            TipViewController * tipVC  = [[TipViewController alloc] init];
            tipVC.preferredContentSize = CGSizeMake(192, 56);
            tipVC.modalPresentationStyle = UIModalPresentationPopover;
            UIPopoverPresentationController * popVC = tipVC.popoverPresentationController;
            popVC.delegate = self;
            popVC.sourceView = startBtn;
            popVC.sourceRect = CGRectMake(startBtn.frame.size.width/2.0, 0, 0, 0);
            [self presentViewController:tipVC animated:YES completion:nil];
    需要遵守的协议 UIPopoverPresentationControllerDelegate
    #pragma mark - popViewController 的代理方法,实现该方法才能够局部弹出控制器
    -(UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller{

        return UIModalPresentationNone;
    }
  • 相关阅读:
    C#实现任意源组播与特定源组播
    张灵甫此人性格偏激,赌性重,喜欢冒险,做事不留后路,更适合担任中下层军官(要自己掌控着自己的命运)
    Delphi 中 断言 Assert 用法
    桌面程序阻止Windows关机(使用Message.Result取得DefWindowProc API函数的返回值,非常重要)
    Asp.net vnext的IIS部署
    Asp.net vNext 学习3
    EasyUI的后台界面
    C#框架
    前端分离规范
    AngularJS html5Mode与ASP.NET MVC路由
  • 原文地址:https://www.cnblogs.com/code-Officer/p/6015547.html
Copyright © 2011-2022 走看看