1.UIPopoverController是什么?
它是iPad开发中常见的一种控制器,并且在iphone上是不允许使用。
该控制器直接继承自NSObject,而不是继承自UIVIEwController,就决定了该控制器不可视。
该控制器占用部分屏幕空间,并且显示在屏幕的最前面
关于上面的说明:虽然该控制器不可视,但是该控制器有contentVIEwController属性,也说明了该控制器是作为包装其他控制器的父控制器;虽然该控制器暂用部分空间,且显示在屏幕的最前面。但是在屏幕中的其他可交互控件依然可以进行交互,可以说这是一个小小的BUG,会影响用户的使用体验。需要我们自己去消除。
2.UIPopoverController怎么使用?
1.创建一个要显示的控制器,也就是UIPopoverController的内容控制器。
//YcmenuController控制器继承自UItableVIEwController YcmenuController *menuVC = [[YcmenuController alloc] init]
2.初始化UIPopoverController控制器
_menuPopover = [[UIPopoverController alloc] initWithContentVIEwController:menuVC];
3.显示该UIPopoverController控制器
- (IBAction)menuClick:(ID)sender //sender是一个按钮 [self.menuPopover presentPopoverFrombarbuttonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];}
此外还有另外一种显示方式:
[self.menuPopover presentPopoverFromrect: sender.bounds inVIEw:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
对上面两种方法给出一个具体的说明
//围绕着⼀一个UIbarbuttonItem显⽰示(箭头指定那个UIbarbuttonItem//item:围绕哪个UIbarbuttonItem显示//arrowDirections :箭头的⽅方向//animated :是否通过动画显⽰示出- (voID)presentPopoverFrombarbuttonItem:(UIbarbuttonItem *)item permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOol)animated;
//围绕着某⼀块特定区域显⽰(箭头指定那块特定区域)//rect :指定箭头所指区域的矩形框范围(位置和尺⼨寸)//vIEw :rect参数是以vIEw的左上⾓角为坐标原点(0,0)//arrowDirections :箭头的⽅方向//animated :是否通过动画显⽰示出来 - (voID)presentPopoverFromrect:(CGRect)rect inVIEw:(UIVIEw *)vIEw permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOol)animated;
这里要对UIPopoverController有一个强引用。在这里也就是要对_menuPopover有一个强引用。
如果要对显示的popover的尺寸有一个控制,可以在YcmenuController的vIEwDIDLoad方法中添加如下这句代码(iOS7以及后版本):
self.preferredContentSize = CGSizeMake(120,44);
iOS6或iOS6之前
self.contentSizeforVIEwInPopover = CGSizeMake(120,44);
3.可以实现相同效果的UIPopoverPresentationController
该类出现在iOS8中。可以代替UIPopoverController。
它的使用方法:
//在这里定义一个内容控制器UIVIEwController *contentVC = [[UIVIEwController alloc] init]; //contentVC的呈现方式就是通过Popover的方式contentVC.modalPresentationStyle = UIModalPresentationPopover;//已经告诉内容控制他的d出方式就是popover的方式//所以可以通过内容控制器的popoverPresentationController属性得到UIPopoverPresentationControllerUIPopoverPresentationController *popPV = contentVC.popoverPresentationController;popPV.barbuttonItem = self.categoryItem;[self presentVIEwController:contentVC animated:YES completion:nil];总结
以上是内存溢出为你收集整理的UIPopoverController的使用全部内容,希望文章能够帮你解决UIPopoverController的使用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)