iOS- iPad里有趣的UIPopoverController
效果:
1.对UIPopoverController的简单概述
2.UIPopoverController实现
要想成功显示一个UIPopoverController,需要经过下列步骤:
2.2设置内容控制器
由于UIPopoverController直接继承自NSObject,不具备可视化的能力,因此UIPopoverController上面的内容必须由另外一个继承自UIViewController的控制器来提供,这个称为“内容控制器”
设置内容控制器有三种方法:
在初始化UIPopoverController的时候传入一个内容控制器
通过@property设置内容控制器
animated可以指定设置内容控制器时要不要带有动画效果
@interfaceQCLocationButton() <UIPopoverControllerDelegate>
{
UIPopoverController *_popover;
}
// 2.弹出popover(默认特性:点击popover之外的任何地方,popover都会隐藏)
// 2.1.内容
QCCityListViewController *cityList = [[QCCityListViewController alloc] init]; // 2.2.将内容塞进popover中
_popover = [[UIPopoverController alloc] initWithContentViewController:cityList];
2.3设置内容的尺寸
显示出来占据多少屏幕空间
设置内容的尺寸有两种方法:
// 2.3.设置popover的内容尺寸
_popover.popoverContentSize = CGSizeMake(, );
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显示的位置
// 2.5.展示popover
// self.bounds --- self
// self.frame --- self.superview
[_popover presentPopoverFromRect:self.bounds inView:self permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
清澈Saup
iOS- iPad里有趣的UIPopoverController的更多相关文章
- iOS:iPad和iPhone开发的异同(UIPopoverController、UISplitViewController)
iPad和iPhone开发的异同 1.iPhone和iPad: niPhone是手机,iPad.iPad Mini是平板电脑 iPhone和iPad开发的区别 屏幕的尺寸 \分辨率 UI元素的排布 \ ...
- iOS iPad开发之UIPopoverController的使用
1. 什么是UIPopoverController? 是iPad开发中常见的一种控制器(在iphone上不允许使用) 跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewCon ...
- ios项目里扒出来的json文件
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0. ...
- ios 项目里常用的宏
NSLog(@"__func__ : %s", __func__);//oc测试环境,打印文件名,方法名 NSLog(@"__FUNCTION__ : %s" ...
- [ios]ipad下的splitViewController 让你的APP看起来酷酷的!
在ipad下可以使用splitViewController splitViewController下包含两个viewController 这是一种将屏幕一分为二的方式. 在水平状态下会出现成两个左右两 ...
- iOS微信里打开app,Universal Links
这两天在弄分享,从第三方应用或者浏览器打开自己app的东西 传统的方式是通过URL Scheme的方式,但是iOS9以后又出了新的更完美的方式Universal Links. 传统的URL Schem ...
- 清理iOS工程里无用的图片,可瘦身ipa
工程在经过多人后,往往会出现较多的垃圾,导致打包出来的ipa文件偏大,有时候我们会通过清理代码来给程序瘦身,而瘦身ipa效果明显的,主要通过清理程序里的无用图片. 推荐一个清理图片的应用 https: ...
- iOS block里的self
block是可以捕捉上下文的特殊代码块. block可以访问定义在block外的变量,当在block中使用时,它就会为其在作用域内的每个标量变量创建一个副本. 如果通过self拥有一个block,然后 ...
- iOS开发里的Bundle是个啥玩意?!
初学iOS开发的同学,不管是自己写的,还是粘贴的代码,或多或少都写过下面的代码 [[NSBundle mainBundle] pathForResource:@"someFileName&q ...
随机推荐
- 在WIN7下安装运行mongodb
1).下载MongoDB http://downloads.mongodb.org/win32/mongodb-win32-i386-2.4.5.zip 下载Windows 32-bit版本并解压缩, ...
- PHP封装CURL
CURL是一个非常强大的开源库,支持很多协议,包括HTTP.FTP.TELNET等,我们使用它来发送HTTP请求.它给我 们带来的好处是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS ...
- linux操作之软件安装(一)
rpm 包安装 RedHat Package Manager的缩写 , linux 的软件包可能存在依赖关系,比如某某依赖某某才能使用. 挂载一个光盘 mount -t auto /dev/cdrom ...
- day 16 初试面试对象
1.初识面向对象 面向过程: 一切以事物的发展流程为中心 面向对象: 一切以对象为中心.一切皆为对象.具体的某一个事务就是对象 打比 ...
- Linux重启命令介绍
下面介绍在 Linux 操作系统中重启和关闭相关的命令:shutdown.reboot.init.halt.poweroff.systemctl,你可以根据需要来选择适合的 Linux 命令关闭或重新 ...
- core dump文件分析和调试
core介绍 当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成"核心转储").我们可以认 ...
- AIDL 进程间通信的一个小小的总结
需求 项目需要,将做好的项目作为一个服务提供给另一个公司.我们需要提供一个apk,所以设计到进程间交互,不得不了解一下AIDL了. 了解一下AIDL 之前准备面试的时候,或多或少的了解了一点AIDL, ...
- 20145202马超《java》实验5
两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面 ...
- 北京Uber优步司机奖励政策(3月8日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 南京Uber优步司机奖励政策(12月14日到12月20日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
