iOS:UIPopoverController示例
来源:互联网 发布:java public和private 编辑:程序博客网 时间:2024/06/03 22:39
iPad特有的方法,iPhone无法使用
创建一个UIViewController,这个UIViewController就是这个方框,需要具体在UIViewController里面怎么布局就看自己的安排了,上面的那个角是系统生成的,具体怎么生成的,下面讲。
首先我们要明确,肯定是点了发起讨论才使UIPopoverController出现的,所以,创建就写在按钮的触发方法里面。
这些是需要的界面
@property (nonatomic,strong)RightViewFactory *rightView;
@property (nonatomic,strong)UIViewController *popVC;
@property (nonatomic,strong)UIPopoverController *popC;
首先肯定要判断这个视图控制器有没有,有的话就不要再多次创建了,而UIPopoverController可以多次创建是因为每次使用完后会自动销毁(貌似是这样的)
if (!_popVC) {
_popVC = [[UIViewControlleralloc]init];
_popVC.view.frame =CGRectMake(0,0,POPOVER_WIDTH,POPOVER_HEIGHT);
_popVC.view.backgroundColor = [UIColorwhiteColor];
//构建popVC的视图
[self createPopVC];
}
创建UIPopoverController
//构建POPover
self.popC = [[UIPopoverControlleralloc]initWithContentViewController:_popVC];
这个是设置UIPopoverController的尺寸,跟着你的视图控制器写就行了
_popC.popoverContentSize =_popVC.view.frame.size;
重点来了,首先,sender是点击事件的按钮,_rightView是导航栏右导航项,也就是按钮在_rightView上面,permittedArrowDirections是设置那个角的朝向,ang顾名思义就是任何方向了
[_popC presentPopoverFromRect:sender.frameinView:_rightViewpermittedArrowDirections:UIPopoverArrowDirectionAnyanimated:YES];
效果图
具体使用方法(下有demo):
创建一个UIViewController,这个UIViewController就是这个方框,需要具体在UIViewController里面怎么布局就看自己的安排了,上面的那个角是系统生成的,具体怎么生成的,下面讲。
首先我们要明确,肯定是点了发起讨论才使UIPopoverController出现的,所以,创建就写在按钮的触发方法里面。
这些是需要的界面
@property (nonatomic,strong)RightViewFactory *rightView;
@property (nonatomic,strong)UIViewController *popVC;
@property (nonatomic,strong)UIPopoverController *popC;
首先肯定要判断这个视图控制器有没有,有的话就不要再多次创建了,而UIPopoverController可以多次创建是因为每次使用完后会自动销毁(貌似是这样的)
if (!_popVC) {
_popVC = [[UIViewControlleralloc]init];
_popVC.view.frame =CGRectMake(0,0,POPOVER_WIDTH,POPOVER_HEIGHT);
_popVC.view.backgroundColor = [UIColorwhiteColor];
//构建popVC的视图
[self createPopVC];
}
创建UIPopoverController
//构建POPover
self.popC = [[UIPopoverControlleralloc]initWithContentViewController:_popVC];
这个是设置UIPopoverController的尺寸,跟着你的视图控制器写就行了
_popC.popoverContentSize =_popVC.view.frame.size;
重点来了,首先,sender是点击事件的按钮,_rightView是导航栏右导航项,也就是按钮在_rightView上面,permittedArrowDirections是设置那个角的朝向,ang顾名思义就是任何方向了
[_popC presentPopoverFromRect:sender.frameinView:_rightViewpermittedArrowDirections:UIPopoverArrowDirectionAnyanimated:YES];
如果说在你的UIPopoverController中有push事件,需要在你push方法后跟着写一个
[_popCdismissPopoverAnimated:YES];
此方法是关闭UIPopoverController,否则push到下个界面你的UIPopoverController还存在在那里
以上示例,仅仅是简单使用,仅此参考,如诺有更多需求
我的具体demo:
这是点击事件,自己自定义一个button好了
demo里先判断视图控制器是否存在,因为viewController不会自动销毁,而且,ViewController的尺寸大小可以当做你的PopoverController的尺寸,你也可以使用PopoverController.popoverContentSize 设置PopoverController大小
sender.frame是button的frame
_rightView是我盛放button的界面(在我的demo里面相当于
self.navigationItem.rightBarButtonItem = [[UIBarButtonItemalloc]initWithCustomView:_rightView];
)//设置发起讨论下的视图- (void)createImgView:(UIButton *)sender{ //判断视图控制器是否已经存在 if (!_popVC) { _popVC = [[UIViewController alloc]init]; _popVC.view.frame = CGRectMake(0, 0, POPOVER_WIDTH, POPOVER_HEIGHT); _popVC.view.backgroundColor = [UIColor whiteColor]; //构建popVC的视图 [self createPopVC]; } //构建Popover self.popC = [[UIPopoverController alloc]initWithContentViewController:_popVC]; _popC.popoverContentSize = _popVC.view.frame.size; [_popC presentPopoverFromRect:sender.frame inView:_rightView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];}
//构建popVC的视图- (void)createPopVC{<span style="white-space:pre"></span> //这里面是对ViewController的布局,相当于是对<span style="font-family: Arial, Helvetica, sans-serif;">PopoverController的布局,当然,你也可以子类化一个ViewController</span><span style="white-space:pre"></span> }
1 0
- iOS:UIPopoverController示例
- UIPopoverController iOS
- 【iOS学习】----UIPopoverController
- iOS UIPopoverController的使用
- iOS-UIPopoverController(ipad)
- iOS UIPopoverController的使用
- ios-UIPopoverController和UIPopoverPresentationController
- iOS UIPopOverController的使用问题
- ios UIPopoverController 用法、内存解析
- iOS中UIPopoverController的使用
- UIPopoverController
- UIPopoverController
- UIPopoverController
- UIPopoverController
- UIPopoverController
- UIPopoverController
- UIPopoverController
- UIPopoverController
- 泰永科技组织架构
- 第10周上机实践项目5——输出完数
- object hook实现禁止创建文件
- CUDA-事件计时
- solr4.9 运行
- iOS:UIPopoverController示例
- UITextField小结
- Android 友盟分享,让你后顾无忧,麻麻再也不用担心我的学习。
- 多列列表控件中图片尺寸处理的若干问题
- hdu 4778 Gems Fight!(状态压缩+博弈+记忆化)
- 《精通Linux设备驱动程序开发》——字符设备驱动程序
- oracle时间操作。
- C,C++,C#三者区别
- postgresql 的一些常用命令