效果图
具体使用方法(下有demo):
创建一个UIVIEwController,这个UIVIEwController就是这个方框,需要具体在UIVIEwController里面怎么布局就看自己的安排了,上面的那个角是系统生成的,具体怎么生成的,下面讲。
首先我们要明确,肯定是点了发起讨论才使UIPopoverController出现的,所以,创建就写在按钮的触发方法里面。
这些是需要的界面
@property ( nonatomic , strong ) RightVIEwFactory *rightVIEw;
@property ( nonatomic , strong ) UIVIEwController *popVC;
@property ( nonatomic , strong ) UIPopoverController *popC;
首先肯定要判断这个视图控制器有没有,有的话就不要再多次创建了,而 UIPopoverController 可以多次创建是因为每次使用完后会自动销毁(貌似是这样的)
if (! _popVC ) {
_popVC = [[ UIVIEwController alloc ] init ];
_popVC . vIEw . frame = CGRectMake ( 0 , 0 , POPOVER_WIDTH , POPOVER_HEIGHT );
_popVC . vIEw . backgroundcolor = [ UIcolor whitecolor ];
// 构建 popVC 的视图
[ self createPopVC ];
}
创建 UIPopoverController
// 构建 POPover
self . popC = [[ UIPopoverController alloc ] initWithContentVIEwController : _popVC ];
这个是设置 UIPopoverController的尺寸,跟着你的视图控制器写就行了
_popC . popoverContentSize = _popVC . vIEw . frame . size ;
重点来了,首先,sender是点击事件的按钮,_rightVIEw是导航栏右导航项,也就是按钮在_rightVIEw上面, permittedArrowDirections 是设置那个角的朝向,ang顾名思义就是任何方向了
[ _popC presentPopoverFromrect :sender. frame inVIEw : _rightVIEw permittedArrowDirections : UIPopoverArrowDirectionAny animated : 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,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 > </span> //这里面是对VIEwController的布局,相当于是对<span >PopoverController的布局,当然,你也可以子类化一个VIEwController</span><span > </span> }总结
以上是内存溢出为你收集整理的iOS:UIPopoverController示例全部内容,希望文章能够帮你解决iOS:UIPopoverController示例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)