效果:
1.对UIPopoverController的简单概述
2.UIPopoverController实现
要想成功显示一个UIPopoverController,需要经过下列步骤:
2.2设置内容控制器
由于UIPopoverController直接继承自NSObject,不具备可视化的能力,因此UIPopoverController上面的内容必须由另外一个继承自UIViewController的控制器来提供,这个称为“内容控制器”
设置内容控制器有三种方法:
在初始化UIPopoverController的时候传入一个内容控制器
通过@property设置内容控制器
animated可以指定设置内容控制器时要不要带有动画效果
1 @interfaceQCLocationButton() <UIPopoverControllerDelegate>
23{
45 UIPopoverController *_popover;
67 }
//
2.弹出popover(默认特性:点击popover之外的任何地方,popover都会隐藏)
//
2.1.内容
QCCityListViewController *cityList = [[QCCityListViewController alloc] init];
// 2.2.将内容塞进popover中
_popover = [[UIPopoverController alloc] initWithContentViewController:cityList];
2.3设置内容的尺寸
显示出来占据多少屏幕空间
设置内容的尺寸有两种方法:
1
//
2.3.设置popover的内容尺寸
2 _popover.popoverContentSize = CGSizeMake(320, 480);
2.4设置显示的位置
从哪个地方冒出来
设置显示的位置有两种方法:
[pop presentPopoverFromRect:button.bounds inView:button permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
[pop presentPopoverFromRect:button.frame inView:button.superview permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
箭头会指向某一个UIBarButtonItem
假如iPad的屏幕发生了旋转,UIPopoverController显示的位置可能会改变,那么就需要重写控制器的某个方法
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
在上面的方法中重写设置UIPopoverController显示的位置
1
//
2.5.展示popover
2
//
self.bounds --- self
3
//
self.frame --- self.superview
4 [_popover presentPopoverFromRect:self.bounds inView:self permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
原文:http://www.cnblogs.com/qingche/p/3541409.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!