美文网首页
iphone利用UIPopoverPresentationCon

iphone利用UIPopoverPresentationCon

作者: 清蘂翅膀的技术 | 来源:发表于2017-06-27 11:11 被阅读0次

    关于iphone实现popover的效果,网上大多资料都是利用别人写好的库来实现。其实ios8之后有了新方法UIPopoverPresentationController,可以直接实现的。

    UIPresentationController管理了所有的UIViewController的presentation。UIPopoverPresentationController是UIPresentationController的一个子类,替代了之前的UIPopoverController,它无需再判断是iphone还是ipad,都会自动进行适配。用于ipad的效果不必多说,但在iphone上,会自动以modal的形式present出来view。这时只要告知代理不要适配,就有了iphone自己的popover。

    下面上代码。----<UIPopoverPresentationControllerDelegate>

    - (void)TypeNumberBtnClick {

    self.typeNumberVC = [[JGTypeNumberViewController alloc]init];

    self.typeNumberVC.modalPresentationStyle = UIModalPresentationPopover;//带anchor锚点的样式

    self.typeNumberVC.popoverPresentationController.sourceView = self.chooseTypeView.TypeNumberBtn;

    //指定相对于Button具体位置

    self.typeNumberVC.popoverPresentationController.sourceRect = self.chooseTypeView.TypeNumberBtn.bounds;

    //箭头的显示方向(默认指定Any枚举值:自动找最优的方向)

    self.typeNumberVC.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionAny;

    //设置代理(iPhone需要;iPad不需要)

    self.typeNumberVC.popoverPresentationController.delegate = self;

    //3.显示弹出控制器

    [self presentViewController:self.typeNumberVC animated:YES completion:nil];

    }

    #pragma mark -- UIPresentationDelegate

    - (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller {

    return UIModalPresentationNone;

    }

    相关文章

      网友评论

          本文标题:iphone利用UIPopoverPresentationCon

          本文链接:https://www.haomeiwen.com/subject/tkascxtx.html