iOS:UIPopoverController示例

iOS:UIPopoverController示例,第1张

概述iPad特有的方法,iPhone无法使用 效果图 具体使用方法(下有demo): 创建一个UIViewController,这个UIViewController就是这个方框,需要具体在UIViewController里面怎么布局就看自己的安排了,上面的那个角是系统生成的,具体怎么生成的,下面讲。 首先我们要明确,肯定是点了发起讨论才使UIPopoverController出现的,所以,创建就写在按 iPad特有的方法,iPhone无法使用

效果图

具体使用方法(下有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示例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1088616.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存