iOS UIPopoverController的使用

UIPopoverController只能在ipad设备上面使用;作用是用于显示临时内容,特点是总是显示在当前视图最前端,当单击界面的其他地方时自动消失。 

UIViewController* vCtrl = [[UIViewController alloc] init]; 

UIPopoverController*popController = [[UIPopoverController alloc] initWithContentViewController:vCtrl];   

popController.popoverContentSize = CGSizeMake(320,480); 

CGrect rect =CGRectMake(0,0,2,2);   

[popController presentPopoverFromRect:rect inView:aView permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 


在使用该控制器的时候,下面几个步骤是必须的: 
1.UIPopoverController该控制器的内容必须由一个控制器提供;提供方式有三: 
- (id)initWithContentViewController:(UIViewController *)viewController 
@property (nonatomic, retain) UIViewController *contentViewController 
- (void)setContentViewController:(UIViewController *)viewController animated:(BOOL)animated 
2.设置箭头方向: 
@property (nonatomic, readonly) UIPopoverArrowDirection popoverArrowDirection 
3.设置内容大小: 
@property (nonatomic) CGSize popoverContentSize 
备注: 
<1>.如果从一个导航按钮处呈现,使用: 
presentPopoverFromBarButtonItem:permittedArrowDirections:animated:; 
如果要从一个视图出呈现,使用: 
presentPopoverFromRect:inView:permittedArrowDirections:animated: 
<2>.如果设备旋转以后,位置定位错误需要在父视图控制器的下面方法里面重新定位: 
didRotateFromInterfaceOrientation:(在这个方法体里面重新设置rect) 
然后再次调用: 
- (void)presentPopoverFromRect:(CGRect)rect inView:(UIView *)view permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated 
例子: 
TodoViewController *contentViewController = [[TodoViewController alloc] init]; 
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:contentViewController]; 
navigationController.contentSizeForViewInPopover = CGSizeMake(100, 100); //内容大小 


UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:navigationController]; 

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]; 
[contentViewController release]; 
[navigationController release]; 

//最佳实践,使用哪个view做参考,就以哪个view的bounds送进去就好了,箭头自动指向这个view的中心
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值