ipad 中的 UIPopoverController的使用

本文详细介绍了如何初始化并配置UIPopoverController来创建弹出窗,并展示了如何设置弹出窗的位置、大小以及与搜索栏的交互,同时实现了弹出窗的展示与隐藏。此外,还阐述了如何通过实现UIPopoverControllerDelegate协议来处理弹出窗的相关事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、初始化UIPopoverController

    UIPopoverController *popover = [[UIPopoverController allocinitWithContentViewController:navigationController];   

//必须是个 ViewController

/*且该 ViewController的 viewDidLoad方法中要设置其在popover中的尺寸,如

    self.contentSizeForViewInPopover = CGSizeMake(300.0280.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

    [self.recentSearchesPopoverController presentPopoverFromRect:self.searchBar.bounds

                                                          inView:self.searchBar

                                        permittedArrowDirections:UIPopoverArrowDirectionAny

                                                        animated:NO];


 

4、消失popover

//dismiss the popover.

    [recentSearchesPopoverController dismissPopoverAnimated:YES];


 

5、实现 UIPopoverControllerDelegate协议的方法

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

 


}

重要补充:设置弹出窗的位置

popover.popoverContentSize = CGSizeMake(300, 300); //弹出窗口大小,如果屏幕画不下,会挤小的。这个值默认是320x1100

CGRect popoverRect = CGRectMake(200, 700, 10, 10);

[popover presentPopoverFromRect:popoverRect  //popoverRect的中心点是用来画箭头的,如果中心点如果出了屏幕,系统会优化到窗口边缘

                                          inView:self.view //上面的矩形坐标是以这个view为参考的

              permittedArrowDirections:UIPopoverArrowDirectionDown  //箭头方向

                                      animated:YES];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值