iOS 弹出窗 UIPopoverController 的使用和 位置控制

1、初始化UIPopoverController

    UIPopoverController *popover = [[UIPopoverController alloc]initWithContentViewController:navigationController];   
//必须是个 ViewController
/*且该 ViewController的 viewDidLoad方法中要设置其在popover中的尺寸,如
    self.contentSizeForViewInPopover = CGSizeMake(300.0, 280.0);  
*/

    self.recentSearchesPopoverController = popover;
    recentSearchesPopoverController.delegate = self;    //self要实现UIPopoverControllerDelegate协议

2、设置当popover弹出时,用户仍可以交互的视图

    // Ensure the popover is not dismissed if the user taps in the search bar.
    popover.passthroughViews = [NSArray arrayWithObject:searchBar];

3、展现popover

    //弹出窗口大小,如果屏幕画不下,会挤小的。这个值默认是320x1100
     self.recentSearchesPopoverController.popoverContentSize=CGSizeMake(300,300);
    //popoverRect的中心点是用来画箭头的,如果中心点如果出了屏幕,系统会优化到窗口边缘
    //最佳实践,从哪个view弹出,就以哪个view的bounds送进去就好了,箭头自动指向这个view的中心
    [self.recentSearchesPopoverController presentPopoverFromRect:self.searchBar.bounds
                                                          inView:self.searchBar   //上面的矩形坐标是以这个view为参考的
                                        permittedArrowDirections:UIPopoverArrowDirectionAny  //箭头方向
                                                        animated:NO];
 

4、消失popover

    //dismiss the popover.
    [recentSearchesPopoverController dismissPopoverAnimated:YES];
 

5、实现 UIPopoverControllerDelegate协议的方法: <UIPopoverControllerDelegate>

- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
 

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值