美文网首页iOS开发技术iOS-swiftiOS程序猿
教你用swift轻松写一个自己的Alert弹出框库

教你用swift轻松写一个自己的Alert弹出框库

作者: smalldu | 来源:发表于2015-11-01 23:20 被阅读7902次

    项目要用提示框,系统的提示框和app主题又不搭只能自己搞一个了,其实搞一个提示框库很简单,下面教大家怎么搞

    代码已经上传github: https://github.com/smalldu/ZuberAlert
    

    先上效果:


    ZuberAlert

    下面简单说下思路。

    首先想清楚,我们的弹出框弹出的是一个什么东西 。弹出来得其实也是一个view ,放在一个半透明的view上。 我们这里用一个ViewController来管理 。所以我们的这个弹出框需要继承自UIViewController

    下来要想清楚,我们这个view要添加在哪里 , 因为我们这个弹出框不管在哪个页面都可以弹出来 , 所以这边我选择放在UIWindow上 , 因为要显示在最前面,所以展示出来的时候要加上window.bringSubviewToFront(view)

    这两个问题想清楚了以后 , 就可以做了,不就是画一个view上面放一个标题,以歌内容 几个按钮 。然后再布局就行了 。

    这里强调一点就是,初始化的时候声明一个对自己的引用

    var strongSelf:ZuberAlert?
    

    然后在init方法执行strongSelf = self相当于retain了一下 强引用 。 不然 点击按钮的方法不会执行。

    具体代码很简单就不详细说了,大家可以去github上下载源码 , 核心就一个swift 文件,不到200行代码。

    当然你也可以不看代码直接使用。使用方式也很简单

    在任何你想alert得地方 一句话搞定

    ZuberAlert().showAlert("小提示", subTitle: "这是一个测试的小提示", buttonTitle: "取消", otherButtonTitle: "确认") { (OtherButton) -> Void in
                print("执行了确认")
            }
    

    第一个按钮式用来取消的 ,内部写好了,第二个按钮的方法可以自定义 。内容写在闭包里就行了。非常方便好用。

    这里只是一点小小的功能,抛砖引玉 ,大家可以随便自由发挥,做一个自己的弹出框。

    相关文章

      网友评论

      • 姑娘丶你命里缺我:楼主,请问下有xib方式的弹框文章吗?
      • 指尖猿:可是我想点击确定之后,把这个弹窗干掉呢
      • tankdc:赞
      • 4b4d42e9a1bb:let window: UIWindow = UIApplication.sharedApplication().keyWindow!
        把你的代码直接导出来加入工程的时候,此时这个window的值为nil,是为什么啊
        smalldu:@吴章平 Selector用法错了 ,可以不写Selector直接 "customAlert" 看看我写的Selector的文章http://www.jianshu.com/p/042fa8348c14 里面基本包含swift中所有用到Selector的情况了
        4b4d42e9a1bb:btn.addTarget(self, action: Selector(customAlert()), forControlEvents: .TouchUpInside)
        我这样添加点击事情,结果就说window为nil,好郁闷,下面的写法就对了
        btn.addTarget(self, action: Selector("customAlert"), forControlEvents:.TouchUpInside)
        smalldu:@吴章平 应该不会 不放心可以加个判断
        UIApplication.sharedApplication().keyWindow这句话就是拿当前应用的主窗口
        不可能没有window的

        if let window = UIApplication.sharedApplication().keyWindow as? UIWindow{
        放在这里使用window
        }

      本文标题:教你用swift轻松写一个自己的Alert弹出框库

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