美文网首页
IOS之dropDownView

IOS之dropDownView

作者: 焚琴煮鹤de我 | 来源:发表于2015-06-21 14:07 被阅读212次

     很多时候都会有写一个dropDownView的功能需要,学习封装一个自己的dropDownView将显得非常之有必要.

    在导航栏的titleView上添加一个button,然后通过点击这个titleButton来实现弹出dropDownView的效果.

    于是乎我们就需要定义这样的一个buttonClick的方法

    创建一个这样的控件,然后设定controller中的view大小,最后通过show的形式展示出来


    创建这样一个自定义的View出来~

    ??? 我们为什么需要一个controller属性?因为其实我们创建的dropDownView中往往放的是类似tableView之类的控件,用一个单独的controller来管理它自然是极好的


    在我们的dropDownView中,有这样一个容器,用来放我们将要添加的controller的view

    ???这个懒加载为何这么写?因为我们的containerView是一个weak的UI控件


    通过重写set方法,将外界传入的controller的View添加到我们的容器之中

    一来可以在容器中显示我们的内容,而来容器内的内容又可以达到单独的controller的控制,符合MVC设计原则

    最后我们只要将这个dropDownView展示出来就好了:


    这里有一个坐标系的转换

    由于有父控件的存在,我们的容器containerView的frame往往是根据自己所在的view的frame来计算的,但这并不利于我们在整个手机界面上对弹出菜单位置的布局.

    我们需要将点击button的那个View的frame转换到window上,这样利于我们的定位,才有了这句

    /**坐标系转换*/

    CGRect newFrame = [from convertRect: from.bounds toView:window];

    转换完成之后再去布局具体的containerView的位置就简单多了~

    相关文章

      网友评论

          本文标题:IOS之dropDownView

          本文链接:https://www.haomeiwen.com/subject/voisqttx.html