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的中心
分享到:
相关推荐
NULL 博文链接:https://justsee.iteye.com/blog/1856439
UIPopoverController简单使用,就是自己实例化一个 UIPopoverController,主要是实例化时popoverVC的位置。。。
UIPopoverController ios iphone 实例 用法
UIPopoverController只能在ipad设备上面使用;作用是用于显示临时内容,特点是总是显示在当前视图最前端,当单击界面的其他地方时自动消失。
1.什么是UIPopoverController 是iPad开发中常见的一种控制器(在iPhone上不允许使用) 跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewController 它只占用部分屏幕空间来呈现信息,而且显示在屏幕...
运行时实现,以允许在iPhone应用程序上使用UIPopoverController 。 执行 默认情况下,弹出窗口仅适用于iPad应用程序。 这是UIPopoverController类的类别,该类重写UIPopoverController的标准实现,以使_...
在iPhone上也能使用UIPopoverController。这个代码库不但让UIPopoverController的使用 变得简单,同时也能在iPhone上使用UIPopoverController。点击任意控件,如按钮、导航条按钮、工具条按钮等,都会弹出视图。弹出...
在iPhone上也能使用UIPopoverController。这个代码库不但让UIPopoverController的使用变得简单,同时也能在iPhone上使用UIPopoverController。点击任意控件,如按钮、导航条按钮、工具条按钮等,都会弹出视图。弹出...
通常,在要使用UIPopoverController呈现的视图控制器上设置preferredContentSize足以触发UIPopoverController的动画调整大小。 但是,当在弹出窗口中呈现UINavigationController时,设置preferredContentSize会...
主要是对UIPopoverController、UIPopoverPresentationController、UIAlertView、UIActionSheet、UIAlertController的使用总结代码。
iOS 弹出视图 WEPopover ,WEPopover 是一个弹出视图,使用跟 UIPopoverController 一样的 API,...
仿照iPad上UIPopoverController系统类实现的弹出视图, 可以在iPhone上使用 github: https://github.com/luomoyj/YJPopoverDemo 欢迎star
在iPhone上实现iPad上UIPopoverController的效果,也就是,点击选中列表某一行,将弹出另外一个小列表,显示更多的内容。 注意:请在Mac下解压使用
不知道大家发现了没,在现在的很多App中常使用圆角...iPad 中有 UIPopoverController 类供开发使用, iPhone中就需要开发人员定制了。那么下面这篇文中就来聊聊定制圆角箭头矩形提示框,有需要的朋友们可以参考借鉴。
第14章 UIPopoverController与模态视图控制对象 第15章 保存、读取与多任务处理 第16章 创建UITableViewCell子类 第17章 Core Data 第18章 本地化 第19章 设置 第20章 触摸事件与UIResponder 第21章 Instruments 第...